返回元音

时间:2013-04-06 08:18:21

标签: java

我是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,所以它一个接一个地循环而不是整个单词。但是我无法弄清楚。如果有人会给我提示而不是回答,我将会感激。

5 个答案:

答案 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”或“c​​ontainsVowel”。在这种情况下,循环遍历每个字母并返回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