如何检查 char 是否为元音?

2022-09-02 14:15:26

这个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);

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

例:

word = Jaemeas,那么 wordT 必须 = Jaem

示例 2:

word=Jaeoimus,那么wordT必须=Jaeoim

问题在于我的陈述,我不知道如何让它检查那一行中的所有元音。if


答案 1

检查元音的干净方法:

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

答案 2

您的病情有缺陷。想想更简单的版本

z != 'a' || z != 'e'

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

你可能想要在那里:&&

z != 'a' && z != 'e' && ...

或者也许:

"aeiou".indexOf(z) < 0