import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Vowels
{
public static void main(String[] args) throws FileNotFoundException
{
String vowels = "aeiou";
int[] counters = new int[vowels.length()];
Scanner console = new Scanner(System.in);
System.out.print("Input file: ");
String inputFileName = console.next();
console.useDelimiter("");
while (console.hasNext())
{
char ch = console.next().charAt(0);
ch = Character.toLowerCase(ch);
if(ch == 'a')
{
counters[0]++;
}
if(ch == 'e')
{
counters[1]++;
}
if(ch == 'i')
{
counters[2]++;
}
if(ch == 'o')
{
counters[3]++;
}
if(ch == 'u')
{
counters[4]++;
}
}
for (int i = 0; i < vowels.length(); i++)
{
System.out.println(vowels.charAt(i) + ": " + counters[i]);
}
}
}
Wenn ich die Dateien ausführen, erkennt es 3 e nur, wenn es einige hundert von beiden erkennen sollte. Ich sehe keine Probleme mit meinem Code, die Probleme verursachen könnten. Ich nehme an, dass es zwischen meinem Begrenzer und Ende der Weile sein muss, weil der Rest aus dem Buch ist.Chars nicht Array-Zähler in While-Schleife erhöhen?
Haben Sie versucht, Putting 'System.out.println (ch);' in der while-Schleife, um zu sehen, ob es das Richtige tut? Das könnte helfen, es herauszufinden. –
Noch wichtiger, haben Sie versucht, 'String term = console.next(); System.out.println (Begriff); ch = term.charAt (0); 'um zu bestimmen, ob dein' useDelimiter (""); 'dir tatsächlich jeweils 1 Zeichen gibt? – AJNeufeld