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'
(单引号表示字符),依此类推其余条件。
添加回答
举报