KyleMHB KyleMHB - 21 days ago 7
Java Question

How do I check if a char is a vowel?

This Java code is giving me trouble:

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


I want to check if the third letter of word is a non-vowel, and if it is I want it to return the non-vowel and any characters preceding it. If it is a vowel, it checks the next letter in the string, if it's also a vowel then it checks the next one until it finds a non-vowel.

Example:


word = Jaemeas then wordT must = Jaem


Example 2:


word=Jaeoimus then wordT must =Jaeoim


The problem is with my
if
statement, I can't figure out how to make it check all the vowels in that one line.

Answer

Your condition is flawed. Think about the simpler version

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

If z is 'a' then the second half will be true since z is not 'e' (i.e. the whole condition is true), and if z is 'e' then the first half will be true since z is not 'a' (again, whole condition true). Of course, if z is neither 'a' nor 'e' then both parts will be true. In other words, your condition will never be false!

You likely want &&s there instead:

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

Or perhaps:

"aeiou".indexOf(z) < 0