2016-12-13 12 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

在循環中有一個冗餘循環。只需添加第二if相同的循環:

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

那就是當你有不良壓痕會發生什麼。你嵌套for-loops而不是2個單獨的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++; 
} 

或讓他們在1個單的for循環:

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

您可能希望將1添加到wordcount中,因爲它計算了空格的數量。例如:在「蘋果香蕉」中,有1個空白,但有2個單詞。除此之外,計數空格有缺點,例如,在單詞之間有兩個或更多個連續的空格。