Java 返回元音

Java 返回元音,java,Java,我是Java的初学者,我正在练习practiceit 但我被这个问题绊倒了 编写一个名为isVowel的方法,返回字符串是否为元音(一个包含a、e、i、o或u的单字母字符串,不区分大小写) public静态布尔元音(字符串字){    对于(int i=0;i你的问题很令人困惑。字符串可能有元音,但唯一正确的英语单词是“i” 此方法应命名为“hasvuel”或“containsVowel”。在这种情况下,循环每个字母,如果有元音,则返回true。如果您只需要检查字符串是否为元音,而不是包含元音,

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

但我被这个问题绊倒了

编写一个名为
isVowel
的方法,返回
字符串是否为元音(一个包含a、e、i、o或u的单字母字符串,不区分大小写)

public静态布尔元音(字符串字){
  

对于(int i=0;i你的问题很令人困惑。字符串可能有元音,但唯一正确的英语单词是“i”


此方法应命名为“hasvuel”或“containsVowel”。在这种情况下,循环每个字母,如果有元音,则返回true。如果您只需要检查字符串是否为元音,而不是包含元音,则可以编写如下内容:

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;
}

根据您对函数的定义,
单字母
是元音,这应该可以使用

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());
        }
}

这是您正在寻找的解决方案

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;

 }

下面的方法对我有效

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;
    }
}

例如,当我调用is元音(“obama”)时,它应该给我fase。但我得到的是trueNo,当它找到“o”时,它将返回“true”。根据问题,只有当字符串的长度为1时,它才应该返回true。这没有意义。要检查“字符串是否是元音”这意味着它只有一个字符。现在,如果问题是,字符串是否包含任何元音,那么它应该可以工作。请注意,如果是
word=word.toLowerCase()
,只需要一半的比较。准确地说。我只是对已经给出的代码进行c/p。我现在将编辑我的答案。我尝试了你的方法,它很有效。只需澄清“if(word.length()!=1)return false”;根据我的理解,这意味着如果单词不等于1,编译器将返回false。但是当我调用isvowell时(“obama”),长度不等于1,因此返回false。如果您需要检查单词是否为元音,超过1的单词都应返回false。对不起,我一直在查看。但我不明白。问题不是问我如果看到元音,我应该返回true吗?
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;
    }
}