Das folgende Programm soll einen Text nehmen, alles in Großbuchstaben ändern und die Anzahlen der Buchstaben als Histogramm darstellen. Das Ändern in Großbuchstaben funktioniert aber nicht - Kleinbuchstaben ignoriert das Programm. Könnt ihr mir bitte helfen, den Fehler zu finden?
Java:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Aufgabe26 {
public static void Balkendiagramm (String s){
char []array ={'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','Ä','Ö','Ü'};
int []arrayHäufigkeit=new int[29];
Scanner text1 =new Scanner (s);
ArrayList<String> WortAnzahl= new ArrayList<String>();
while (text1.hasNext()){
String t=text1.next();
if (!WortAnzahl.contains(t)){
WortAnzahl.add(t);
}
}
int y=0;
for (int u=0;u<29; u++){
Scanner text = new Scanner (s);
int q=0;
while (text.hasNext()){
String t =text.next();
t.toUpperCase();
for (int z=0; z<t.length();z++){
if (t.charAt(z)==array[u]){
q++;
}
}
}
arrayHäufigkeit [u]= q;
y=y+q;
}
int b= (y/2);
for (int h=0; h<b; h++){
for (int r=0;r<29; r++){
if (h<b-arrayHäufigkeit[r]){
System.out.print(" ");
}
else {
System.out.print("*");
}
}
System.out.println();
if (h==b-1){
for (int p=0;p<29;p++){
System.out.print(array[p]);
}
}
}
}
public static void main(String[] args) {
String a ="DAS IST EIN BEISPIEL FÜR" +
"EINEN TEXT WIE ER IN EINER" +
"TEXTDATEI STEHEN KöNNTE.";
Balkendiagramm(a);
}
}