2017-07-21 42 views
-1

我正在創建一個類中的方法來計算字符串中元音的數量。首先,我創建了一個方法isVowel(),測試一個字母是否爲變量並返回boolean值。然後我用isVowel()方法創建了countVowels()方法。然而,我爲countVowels()方法編寫的代碼看起來沒有工作,但我的isVowel()方法確實有效,並且在測試字母時返回了正確的值。任何想法我做錯了什麼?計算給定字符串中元音的數量

public int countVowels() { 
    int i = 0; 
    int counter = 0; 

    while (i < text.length()) { 
     String letter = text.substring(i, i + 1); // the ith letter 
     if (isVowel(letter) == true) { 
      counter++; 
     } else { 
      counter = counter + 0; 
     } 
     i++; 
    } 
    return counter; 
} 
+0

作爲一個側面說明,你不必包括'else'塊,如果你不不需要它。 –

+0

你有什麼想法和結果?此代碼沒有錯 –

+1

也許你應該發佈你的'isVowel'方法。 –

回答

0

現在還不清楚究竟是什麼問題。然而,for循環會更適合手頭的任務,而不是一個while循環。

public int countVowels(){ 
    int counter = 0; 
    for(int i = 0; i < text.length(); i++){ 
     String letter = text.substring(i, i + 1); 
     if(isVowel(letter)) 
      counter++; 
    } 
    return counter; 
} 

那麼你isVowel方法應該是沿着線的東西:

public boolean isVowel(String c){ 
    String vowels = "aeiouAEIOU"; 
    return vowels.contains(c); 
} 
+0

你能告訴我爲什麼for循環更好嗎? –

+2

@TuyenNguyen'for'循環更好,因爲它更簡潔,因爲它將循環邏輯保持在一起,並且因爲它將迭代變量('i')的範圍限制在循環內。 – Andreas

+0

我的老師特別想要一個while循環,是的,我的isVowel()是沿着這些線,並返回正確的true或false值。 – user8346999

相關問題