2016-04-11 7 views
1

Programcı olarak adlandırılan bu web sitesiyle çevrimiçi olarak çalışan kodlamada noob var. Şu anda kullanıcı tarafından girilen herhangi bir argüman dizgisinde substring "sıçan" ı bulmamı gerektiren bu alıştırma üzerinde çalışıyorum. Bunun bir çaylak hatası olabileceğini biliyorum, ama yanlış olanı nasıl düzelteceğimi bilmiyorum.Java Hatası: "Sembol bulamıyor" Yer değişkeni

sorun: Biz argümanı “bakara” yöntemi ile ratSmeller çağırmak Eğer biz argümanı “mat” ile çağırmak durumunda

, yöntem, gerçek dönmelidir yöntem return false gerekir ve geri dönmelidir “fare” kelimesiyle çağrılırsa doğrudur. Şimdilik “sıçan” ın her zaman küçük harfle görüneceğini varsayabilirsin.

Line 11 cannot find symbol if (strArray.indexOf("rat") != -1) {^symbol: method indexOf(String) location: variable strArray of type String[] 

emin değilim nasıl bu sorunu gidermek için:

import java.util.Scanner; 

public class Rats { 
public boolean ratSmeller(String line) { 

    boolean found; 
    String[] strArray = new String[] {line}; 
     if (strArray.indexOf("rat") != -1) { 
      found = true; 
      }else{ 
      found = false; 
      } 
      return found; 

} 

public static void main(String args[]) { 
    Scanner scanner = new Scanner(System.in); 
    System.out.println("Enter a word and we will tell you if it contains the string 'rat' in it: "); 
    String word = scanner.nextLine(); 
    Rats rats = new Rats(); 
    System.out.println("Output: "); 
    System.out.println(rats.ratSmeller(word)); 
} 
} 

Benim tek hata bu nedir? Lütfen yardım et. Teşekkürler! strArray bir Array nesnesi olduğundan derlemek alışkanlık

cevap

2
if (strArray.indexOf("rat") != -1) { 

. indexOf yöntemine sahip değil. String sınıfı bu yönteme sahiptir.

Dize olup olmadığını kontrol etmek isteyebilirsiniz. Bunun dışında overusing değişkenlerdir ve çizgi String[] strArray = new String[] {line}; tamamen gereksiz olduğunu gelen

if (line.indexOf("rat") != -1) { 

. Tek öğe ile bir dizi delici herhangi bir sebep görmüyorum.

+1

Bu cevap, ben siz de değişkenler için kafa karıştırıcı adlandırma kullandığınız olduğunu eklersiniz olduğunu. Değişken 'kelimesi' aslında bir metin dizisidir. –

+0

@AndrewAitken Tam olarak burada da diziye gerek yok sanırım. Bu tamamen gereksizdir. –

0

düzenlemek için işlev ratSmeller:

boolean found=false; 

    if (line.indexOf("rat") != -1) 
    { 
     found = true; 
    } 

    return found; 
0

Dizisi indexOf yöntemi yoktur. Sadece kodunu değiştirerek dene. işe yarayacak Umut -

public boolean ratSmeller(String line) { 

boolean found; 
List<String> strArray = new ArrayList<String>(); 
strArray.add(line); 
    if (strArray.indexOf("rat") != -1) { 
     found = true; 
     }else{ 
     found = false; 
     } 
     return found; 
    }