这个Java代码给我带来了麻烦:
String word =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
陈述,我无法弄清楚如何检查那一行中的所有元音.
检查元音的清洁方法:
public static boolean isVowel(char c) { return "AEIOUaeiou".indexOf(c) != -1; }
你的病情有缺陷.想想更简单的版本
z != 'a' || z != 'e'
如果z
是,'a'
则后半部分将为真,因为z
不是'e'
(即整个条件为真),如果z
是,'e'
那么前半部分将为真,因为z
不是'a'
(再次,整个条件为真).当然,如果z
既不'a'
是,'e'
那么两个部分都是真的.换句话说,你的病情永远不会是假的!
你可能想要&&
那里:
z != 'a' && z != 'e' && ...
也许:
"aeiou".indexOf(z) < 0