3 回答

TA貢獻1811條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超12個贊
因此,當您說 時c == "a"
,您實際上是在嘗試將參數(shù)(字符)與字符串“a”等進行比較。
嘗試將這些行更改為c == 'a'
(單引號表示字符),依此類推其余條件。
添加回答
舉報