0

我是Java的初学者,我正在练习练习。

但是我被这个问题绊倒了。

编写一个名为的方法,该方法isVowel返回 a 是否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;
}

这段代码有效,但是当我测试它的“你好”时。它不再起作用了。我理解这是因为条件是字符,所以它一个一个地循环而不是整个单词。但我无法弄清楚。如果有人会给我提示而不是回答,我将不胜感激。

4

5 回答 5

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;

 }
于 2017-09-30T22:21:00.797 回答
0

你的问题很混乱。一个字符串可能有一个元音,但唯一正确的单字母英文“单词”是“I”。

此方法应命名为“hasVowel”或“c​​ontainsVowel”。在这种情况下,遍历每个字母并在它有元音时返回 true 是有意义的。

于 2013-04-06T08:22:03.810 回答
0

如果您只需要检查您的字符串是否是元音,而不是包含元音,您可以编写如下内容:

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;
}
于 2013-04-06T08:22:42.453 回答
0

鉴于您对函数的定义,asingle 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());
        }
}
于 2013-04-06T08:24:27.117 回答
0

下面的方法对我有用。

public static boolean isVowel(String str) {
    if (str.equalsIgnoreCase("a")) {
        return true;
    } else if (str.equalsIgnoreCase("e")) {
        return true;
    } else if (str.equalsIgnoreCase("i")) {
        return true;
    } else if (str.equalsIgnoreCase("o")) {
        return true;
    } else if(str.equalsIgnoreCase("u")){
        return true;
    } else {
        return false;
    }
}
于 2018-05-16T19:53:06.357 回答