0

私は Java の初心者で、practiceit で練習しています。

しかし、私はこの質問につまずきました。

aが母音 (大文字と小文字を区別せずに a、e、i、o、または u を含む 1 文字の文字列) であるisVowelかどうかを返すという名前のメソッドを記述します。String

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であるため、単語全体ではなく1つずつループしているためだと理解していますが、理解できません。答えの代わりにヒントを教えていただければ幸いです。

4

5 に答える 5

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

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());
        }
}
于 2013-04-06T08:24:27.117 に答える
0

あなたの質問はかなり混乱しています。文字列には母音が含まれる場合がありますが、1 文字の適切な英語の「単語」は「I」だけです。

このメソッドは、「hasVowel」または「containsVowel」という名前にする必要があります。その場合、各文字をループして、母音があれば true を返すことは理にかなっています。

于 2013-04-06T08:22:03.810 に答える