# Menge der Buchstaben eines Textes zählen



## Luna- (22. Nov 2015)

Hallo,

ich würde gerne einen Code erstellen, der die Anzahl der Buchstaben und anderer Zeichen eines eingegebenen Textes.
Bisher hab ich es aber irgendwie nur geschafft, dass ausgegeben wird, wie oft ein einzelner Buchstabe (a) vorkommt.
Bin leider noch ein blutiger Java Anfänger und komme deshalb einfach nicht darauf, vielleicht kann mir ja jemand helfen


```
public class Histogramm2 {
    public static void main(String[] args){
        char[] ascii = new char[256];
        int anzahl = 0;
      
        String eingabe = JOptionPane.showInputDialog("Bitte einen Satz oder ein Wort eingeben:");

      
    for (int i = 0; i < eingabe.length(); i++) {
        if (eingabe.charAt(i) == 'a') anzahl++;
       char a = 0;
       for(int j = 0; j < ascii.length; j++, a++) {
        ascii[i] = a;
     
    }
  
  
    System.out.println("Anzahl der Vorkommen von a: " + anzahl);
```


----------



## Tarrew (22. Nov 2015)

Verstehe ich den Problem irgendwie falsch? Du willst nur die Länge deines eingegebenen Textes rausfinden? Was spricht dann gegen:

```
String eingabe = JOptionPane.showInputDialog("Bitte einen Satz oder ein Wort eingeben:");
         System.out.println("Anzahl der Zeichen: "+ eingabe.length());
```

#Okay, beim wiederholten Lesen hab ichs jetzt glaub ich verstanden. Du möchtest für jeden Buchstaben ausgeben wie häufig er vorkommt. Werde meine Antwort dann nochmal überarbeiten 

So also wenn ich es jetzt richtig verstanden habe, dann kannst du dein ascii-Array einfach in ein int-Array ändern. Statt die Buchstaben zu speichern, erhöhst du einfach immer die Anzahl beim Index des chars den du gelesen hast. 

Also kleines Beispiel: 
Du liest den Buchstaben 'a'. Der hat den ASCII-Wert 97, also inkrementierst du den int-Wert bei ascii[97] um eins. Das ganze machst du allgemein für jeden Buchstaben: 

```
ascii[eingabe.charAt(i)]++;
```

Bei der Ausgabe der Buchstaben, also 'a' kam x Mal vor, 'b' kam y Mal vor, musst du den Index des Arrays nur wieder als char interpretieren.


----------



## Luna- (23. Nov 2015)

Vielen Dank schon mal für die Antwort! 
Sorry wenn ich mich zu ungenau ausgedrückt habe.

```
int[] ascii = new int[256];
int anzahl = 0;

String eingabe = JOptionPane.showInputDialog("Bitte einen Satz oder ein Wort eingeben:"); 

for (int i = 0; i < eingabe.length(); i++) {
  ascii[eingabe.charAt(i)]++;
}
System.out.println("Anzahl der jeweiligen Zeichen : " + anzahl);
```
Was muss ich jetzt hier genau noch ändern, damits funktioniert?
Irgendwie muss ich ja meine anzahl noch in die for Schleife basteln oder nicht?


----------



## Khal Drogo (23. Nov 2015)

Vielleicht solltest du nicht _anzahl_ nutzen, sondern deinen Array _ascii_?

Mit freundlichen Grüßen
Xelsarion


----------

