如何检查字符是否为元音?

Kyl*_*ylo 13 java string char indexof truncation

这个Java代码给我带来了麻烦:

    String word = <Uses an input>
    int y = 3;
    char z;
    do {
        z = word.charAt(y);
         if (z!='a' || z!='e' || z!='i' || z!='o' || z!='u')) {
            for (int i = 0; i==y; i++) {
                wordT  = wordT + word.charAt(i);
                } break;
         }
    } while(true);
Run Code Online (Sandbox Code Playgroud)

我想检查单词的第三个字母是否是非元音,如果是,我希望它返回非元音和前面的任何字符.如果它是一个元音,它会检查字符串中的下一个字母,如果它也是一个元音,那么它会检查下一个字母,直到它找到一个非元音.

例:

word = Jaemeas然后wordT必须= Jaem

例2:

word = Jaeoimus然后wordT必须= Jaeoim

问题在于我的if陈述,我无法弄清楚如何检查那一行中的所有元音.

Sil*_*cea 51

检查元音的清洁方法:

public static boolean isVowel(char c) {
  return "AEIOUaeiou".indexOf(c) != -1;
}
Run Code Online (Sandbox Code Playgroud)


ars*_*jii 27

你的病情有缺陷.想想更简单的版本

z != 'a' || z != 'e'
Run Code Online (Sandbox Code Playgroud)

如果z是,'a'则后半部分将为真,因为z不是'e'(即整个条件为真),如果z是,'e'那么前半部分将为真,因为z不是'a'(再次,整个条件为真).当然,如果z既不'a'是,'e'那么两个部分都是真的.换句话说,你的病情永远不会是假的!

你可能想要&&那里:

z != 'a' && z != 'e' && ...
Run Code Online (Sandbox Code Playgroud)

也许:

"aeiou".indexOf(z) < 0
Run Code Online (Sandbox Code Playgroud)