我是Java的初学者,我正在练习练习。
但我在这个问题上遇到了绊倒。
编写一个名为isVowel
的方法,该方法返回String
是否为元音(包含a,e,i,o或u的单字母字符串,不区分大小写)。
public static boolean isVowel(String word){
for(int i=0;i<word.length();i++){
char vowels=word.charAt(i);
if(vowels== 'a'|| vowels =='e' || vowels=='i'|| vowels == 'o' || vowels == 'u'|| vowels== 'A'|| vowels =='E' || vowels=='I'|| vowels == 'O' || vowels == 'U' ){
return true;
}
}
return false;
}
此代码有效,但当我测试它为“你好”时。它不再有效。我理解这是因为条件是char,所以它一个接一个地循环而不是整个单词。但是我无法弄清楚。如果有人会给我提示而不是回答,我将会感激。
答案 0 :(得分:1)
这是您寻找的解决方案
public static boolean isVowel(String x){
String y=x.toLowerCase();
if(y.equals("a"))
return true;
else if(y.equals("e"))
return true;
else if(y.equals("i"))
return true;
else if(y.equals("o"))
return true;
else if(y.equals("u"))
return true;
else
return false;
}
答案 1 :(得分:0)
你的问题很混乱。一个字符串可能有一个元音,但唯一正确的英文单词“单词”是“我”。
此方法应命名为“hasVowel”或“containsVowel”。在这种情况下,循环遍历每个字母并返回true(如果它有元音)是有道理的。
答案 2 :(得分:0)
如果你只是需要检查你的字符串是否是一个元音,而不是CONTAINS一个元音,你可以这样写:
public static boolean isVowel(String word){
if (word.length()!=1) return false;
char vowels=word.toLowerCase().charAt(0);
if(vowels== 'a'|| vowels =='e' || vowels=='i'|| vowels == 'o' || vowels == 'u'){
return true;
}
return false;
}
答案 3 :(得分:0)
鉴于你对函数的定义,single letter
是一个元音,这应该有效。
public class StackOverflowAnswer {
public static void main(String[] args) {
System.out.println(isVowel("a")); //Returns true
System.out.println(isVowel("b")); //Returns false
System.out.println(isVowel("Obama")); //Returns false
System.out.println(isVowel("ae")); //Returns false, not single letter
}
public static boolean isVowel(String word){
String[] vowels = {"a","e","i","0","u"};
return Arrays.asList(vowels).contains(word.toLowerCase());
}
}
答案 4 :(得分:0)
以下方法对我有用。
my_foo