Hallo,
ich will ein Programm schreiben, das einen String einliest und prozentual angibt, wie oft ein bestimmter Buchstabe vorkommt. Dabei soll zwischen Groß-und Kleinbchstaben nicht unterschieden werden.
Das habe ich so erstmal geschafft:
Eingabe:Hallo
Ausgabe:
A: 1 (20%)
H: 1 (20%)
L: 2 (40%)
O: 1 (20%)
Wenn ich aber jetzt einen String mit Leerzeichen oder Ausreufezeichen eingeben will, dann bekomme ich einen outofindex Error. Was muss ich an meinem Programm ändern, damit er diese Nichtbuchstaben ignoriert?
ich will ein Programm schreiben, das einen String einliest und prozentual angibt, wie oft ein bestimmter Buchstabe vorkommt. Dabei soll zwischen Groß-und Kleinbchstaben nicht unterschieden werden.
Das habe ich so erstmal geschafft:
Java:
public static void main(String[] args){
Scanner s=new Scanner(System.in);
double counter =0;
byte[] eingabe = new byte[200];
int[] anzahlBuchstaben = new int[26];
String[] Buchstaben=new String[] {"A","B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S","T" ,"U", "V", "W", "X", "Y", "Z"};
String text= s.nextLine();
eingabe = text.getBytes();
for (int i = 0; i < eingabe.length; i++)
if (eingabe[i]>90) eingabe[i]-=32; // Alle Buchstaben in Großbuchstaben umwandeln
for (int i = 0; i < eingabe.length; i++) //Anzahl der im eingelesenen Wort enthaltenen Buchstaben alphabetisch im Array
anzahlBuchstaben[(eingabe[i]-65)]++;
for(int i=0; i<anzahlBuchstaben.length; i++)
if(anzahlBuchstaben[i] !=0) counter+= anzahlBuchstaben[i];
for(int i=0; i<anzahlBuchstaben.length; i++) {
if(anzahlBuchstaben[i] !=0) {
System.out.println(Buchstaben[i] + ": " + anzahlBuchstaben[i] + " (" + Math.round((anzahlBuchstaben[i]/counter)*100) + "%)" );
}
}
}
}
Eingabe:Hallo
Ausgabe:
A: 1 (20%)
H: 1 (20%)
L: 2 (40%)
O: 1 (20%)
Wenn ich aber jetzt einen String mit Leerzeichen oder Ausreufezeichen eingeben will, dann bekomme ich einen outofindex Error. Was muss ich an meinem Programm ändern, damit er diese Nichtbuchstaben ignoriert?