Ich habe eine Hausaufgabe, die die Vokale in der Zeichenfolge zählen muss. Mein Programm läuft, aber Konsonanten und Leerzeichen werden nicht ignoriert. Gibt es etwas, das mir im Code fehlt?Mein Programm zählt die Vokale nicht
static void main(String[] args) {
// TODO Auto-generated method stub
boolean stopProgram = false;
while(!stopProgram == true) {
System.out.println("Enter a Word or \"q\" to end the program: "); // prompt the user for input
Scanner wordScanner = new Scanner(System.in);
String word = wordScanner.nextLine();
if(!word.equals("q")) {
String vowels[] = {"a","e","i","o","u","y","A","E","I","O","U","Y"}; //define upper and lower case vowels
int count = 0;
for(int i = 0; i < word.length(); i++) {
if(String.valueOf(word.charAt(i)).equals(vowels[0]) ||
String.valueOf(word.charAt(i)).equals(vowels[1]));
String.valueOf(word.charAt(i)).equals(vowels[2]);
String.valueOf(word.charAt(i)).equals(vowels[3]);
String.valueOf(word.charAt(i)).equals(vowels[4]);
String.valueOf(word.charAt(i)).equals(vowels[5]);
String.valueOf(word.charAt(i)).equals(vowels[6]);
String.valueOf(word.charAt(i)).equals(vowels[7]);
String.valueOf(word.charAt(i)).equals(vowels[8]);
String.valueOf(word.charAt(i)).equals(vowels[9]);
String.valueOf(word.charAt(i)).equals(vowels[10]);
String.valueOf(word.charAt(i)).equals(vowels[11]);
count++;
}
System.out.println(("The Vowel Count is: ") + count);
}
}
}
}
Sie trennen Ihre 'if'-Bedingung mit Semikolon ';' statt oder '||'. Überprüfen Sie das Format Ihres 'if', um sicherzustellen, dass die verschiedenen Bedingungen richtig getrennt sind und dass die Bedingungen korrekt eingeschlossen sind (und nach der schließenden Paranthese kein Semikolon haben). – AntonH
Sie können auch durch Ihre Vokale Array mit einer verschachtelten for-Schleife durchlaufen, um es lesbarer zu machen – Treycos
Related: http://StackOverflow.com/A/13734724/1079354; Während es sich wie ein Betrogener anfühlt, hat dein Code Probleme mit seinen eigenen, die es wert sind, sie selbst zu reparieren. – Makoto