2016-04-11 27 views
1

私は、プログラマーという名前のこのWebサイトでオンラインで練習しているコーディングでnoobです。私は現在、ユーザが入力した任意の引数文字列の中にsubstring "rat"を配置する必要があるこの演習に取り組んでいます。私はこれがルーキーミスかもしれないことは知っていますが、私は何が間違っているかを修正する方法を知らない。Javaエラー:「シンボルを見つけることができません」ロケーション変数

問題:

我々は、引数「バカラ」とメソッドratSmellerを呼び出す場合は、この方法は、我々は、引数「マット」でそれを呼び出す場合、このメソッドはfalseを返す必要があり、trueを返す必要があり、それは返す必要があります。単語 "rat"で呼び出された場合はtrueです。今のところ、 "ラット"は常に小文字で表示されると想定できます。

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)); 
} 
} 

私の唯一のエラーは、このです:

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

ないこの問題を解決する方法がわから?助けてください。ありがとう!

答えて

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

strArrayはArrayオブジェクトなので、コンパイルされません。それはindexOfメソッドを持っていません。 Stringクラスにはそのメソッドがあります。

文字列をチェックしたい場合があります。

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

変数を過度に使用していて、String[] strArray = new String[] {line};という行は完全に冗長です。私は単一の要素で配列をdelcareする何らかの理由は見ません。

+1

これが答えですが、私はあなたが同様にあなたの変数の混乱ネーミングを使用していることを追加します。変数 'word'は実際にはテキスト行です。 –

+0

@AndrewAitkenまさにここでも配列は必要ありません。それは完全に冗長です。 –

0

編集あなたの関数のratSmeller:

boolean found=false; 

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

    return found; 
0

アレイはindexOfメソッドを持っていません。あなたのコードの代わりにそれを試してみてください。 は、それが動作しますホープ -

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; 
    } 
関連する問題