2016-12-13 5 views
0

私は新しい単語があるときのための私のインジケータとして空白を使用して単語を数えようとしています。Javaの単語カウント

私の現在のコードはwordCounterの狂った結果を返していますが、私のvowelCounterは完全に動作しています。

これは基本的な、または簡単な質問である場合はお詫び申し上げます...私はJavaで始まっています。本当に助けていただければ幸いです!

System.out.println("Please enter some text: "); 
    String fileContent = input.nextLine().toLowerCase(); 

    int vowelCounter = 0; 
    int wordCounter = 0; 

    for (int i = 0; i < fileContent.length(); i++) { 

     if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u') 
      vowelCounter++; 

    for (int j = 0; j < fileContent.length(); j++) { 

     if (Character.isWhitespace(fileContent.charAt(j))) { 
      wordCounter++; 
     } 
    } 

    } 
    System.out.println("\nVowel Counter: " + vowelCounter); 
    System.out.println("Word Counter: " + wordCounter); 
+0

ここにヒントがあります:母音用の空白を調べるためのループを入れ、何が起こるかを見てみましょう。 – GAntoine

答えて

0

あなたがループ内で冗長ループを持っています。

for (int i = 0; i < fileContent.length(); i++) { 

    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u') 
     vowelCounter++; 

    else if (Character.isWhitespace(fileContent.charAt(i))) 
     wordCounter++; 

} 
+0

恐ろしい!!!ありがとう... – AnthonyVincenzo18

1

あなたが悪いインデントを持っているときに何が起こるかです:ちょうど同じループに2つ目のifを追加します。 2つの別々のfor-loopsではなく、入れ子になったfor-loopsを持っています。

のようなあなたのループを分離:

for (int i = 0; i < fileContent.length(); i++) { 
    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u') 
     vowelCounter++; 
} 

for (int j = 0; j < fileContent.length(); j++) { 
    if (Character.isWhitespace(fileContent.charAt(j))) 
     wordCounter++; 
} 

Orのループ1つの中でそれらを持っている。(例えば母音など)特定の文字が存在することを確認するために、なかでも

for (int i = 0; i < fileContent.length(); i++) { 
    if(fileContent.charAt(i) == 'a' || fileContent.charAt(i) == 'e' || fileContent.charAt(i) == 'i'|| fileContent.charAt(i) == 'o' || fileContent.charAt(i) == 'u') 
     vowelCounter++; 
    else if (Character.isWhitespace(fileContent.charAt(i))) { 
     wordCounter++; 
    } 
} 

あなたの文字列で、あなたはそれを次のようにすることができます:

char ch = fileContent.charAt(i); 
if("aeiou".contains("" + ch)) 
0

空白の数を数えているため、wordcountに1を追加することができます。例:「リンゴバナナ」では、1つの空白がありますが2つの単語があります。それに加えて、空白の数には、単語間に連続した空白が2つ以上あるなどの欠点があります。

関連する問題