2017-10-20 3 views
-2

何らかの理由で、私のコードがユーザー入力フレーズの各文字を数えています。さらに、単語の文字列を表示しません:System.out.println(word + " instances: " + theWord); 私はBEGINNERのプログラマーで、そこにそれを投げています!フレーズと印刷の出現を計算する

public static int findText(String word, String str){ 
    System.out.println("Enter a word or phrase to be found:"); 
    word = keyboard.nextLine(); 
    int i = 0; 
    theWord = 0; 
    for (i = 0; i < str.length(); i++){ 
    if (str.contains(word) && word.equals(word)){ 
     theWord ++; 
    } 
    } 
    System.out.println(word + " instances: " + theWord); 
    return theWord; 
} 
+2

なぜあなたは引数として単語を渡しているのですか:その値をすぐに上書きします。 –

+1

'&& word.equals(word)' ?? – dave

+1

このコードでは、デバッグの証拠がないので、私はこの質問をd​​ownvotedしました。あなたの質問を編集して、あなたのデバッグが明らかにしたことと、特定のコード行に関する特定の質問を表示してください。参照:[最小限で完全で検証可能な例の作成方法](http://stackoverflow.com/help/mcve)と[小規模プログラムのデバッグ方法](https://ericlippert.com/2014/03/05)/how-to-debug-small-programs /)を実行します。 –

答えて

0

私はあなたに手を差し上げます。

メソッドにStringsを2つ受け入れるので、そのメソッドを呼び出す前に文とユーザーの入力を定義し、それらをパラメーターに渡す必要があります。

次に、findTextの方法では、各単語をスペースで区切ってループします。

は、それからちょうどユーザ入力が単語と一致するかどうかをチェックし、もしそうなら、最後にwordCountを印刷wordCount

に1を追加します。

また、findTextの方法で印刷する場合は、intを返す必要はありません。これが唯一の個々の単語ではなく、フレーズのために働くことを

public static void main(String[] args) { 
     String input = "this is my this is string my this is"; 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Enter a word or phrase to be found:"); 
     String userEntry = keyboard.nextLine(); 
     findText(userEntry, input); 

    } 

    public static void findText(String word, String str) { 
     int wordCount = 0; 
     for (String checkWord : str.split(" ")) { 
      if (checkWord.equals(word)) { 
       wordCount++; 
      } 
     } 
     System.out.println(word + " instances: " + wordCount); 
    } 

は注意が、私はそれはあなたにどのようにいくつかの指示を与えることを願っています:だからここ

は、あなたが探してすることができるものの一例です進む。フレーズがあるかどうかを確認するには、いくつか変更する必要があります。

+0

助けてくれてありがとう!今、私は将来の同様の状況で何をすべきかを知っています! – csstudent2x

+0

@ csstudent2xあなたが答えに満足していれば、答えを受け入れる/自由に答えをアップしてください:) – notyou

関連する問題