Zeichen-Zähler in Java

Bisher dies ist, was ich versucht habe:

public class CharacterCounter {

public static void main(String[] args){

    String string = "sashimi";

    int count = 0;
    for(int i =0; i < string.length(); i++){
        if(string.charAt(i) == 'i'){
            count++;
            }
    }

    System.out.println("The number of letter i is " + count);

} 
}

Ausgabe:

 The number of letter i is 2

Aber was ich tun möchte, ist, das Programm rechnen soll, die aufgetreten sind Zeichen.

Zum Beispiel hier der string ist SASHIMI, die Ausgabe sollte sein:

 the number of letter S is 2
 the number of letter I is 2

Bin ich stecken mit diesem problem. Ich brauche Eure Hilfe. Danke.

  • Sollten Sie eine HashMap <Character, Integer>. Der Schlüssel ist ein Zeichen. Der Wert ist die Anzahl des Auftretens.
  • Vielleicht sollten Sie verwenden irgendeine Art von Karte, an dem das Zeichen ist der Schlüssel und seine Frequenz ist der Wert. Sie können dann Durchlaufen Sie die Karte und finden Sie die Tasten mit den höchsten Werten.
  • Ein int[1<<16] tun würde, als auch, und weit mehr performant. Rasend schnell, in der Tat.
  • Sie können detail? Ich verstehe nicht, was es tut.
  • Siehe meine Antwort unten.
  • Siehe stackoverflow.com/questions/6100712/...

InformationsquelleAutor Dunkey | 2013-08-01
Schreibe einen Kommentar