3 回答
TA貢獻1811條經驗 獲得超6個贊
您應該將字符與字符文字進行比較,而不是字符串文字:
public static boolean isVowel(char c) {
c = Character.toLowerCase(c);
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}
您可以嘗試通過使用一組來保存所有可能的可接受的輸入值來簡化上述代碼:
public static boolean isVowel(char c) {
Set<Character> chars = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u'));
return chars.contains(Character.toLowerCase(c));
}
TA貢獻1827條經驗 獲得超8個贊
c是一個char,"a"是一個String。char并且String是不兼容的類型。
return c == "a" || c == "e" || c == "i" || c == "o" || c == "u";
c == "a"您進行比較char和String評估。
為了解決這個問題,我會將行更改為
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';c與字符進行比較。
TA貢獻1874條經驗 獲得超12個贊
因此,當您說 時c == "a",您實際上是在嘗試將參數(字符)與字符串“a”等進行比較。
嘗試將這些行更改為c == 'a'(單引號表示字符),依此類推其余條件。
添加回答
舉報
