Guten Abend,
habe bereits die Forensuche verwendet, jedoch keinen passenden Thread zu diesem Thema gefunden.
Es geht darum, dass ich ein Tool, zum Auswerten der Haeufigkeiten der einzelnen Buchstaben in einem Satz, schreiben möchte.
Leider sind wir noch nicht sehr weit in JAVA, sodass ich wenn moeglich das ganze mit Feldern umsetzen moechte. Ich dachte mir, dass ich ja drei Arrays erstellen koennte, eins fuer die Buchstaben, eins fuer die Haeufigkeiten der verschiedenen Buchstaben und eins letzendlich fuer die Buchstaben des eingelesen Strings. Die koennte ich dann ja mit einer FOR-Schleife vergleichen (in einem IF-Konstrukt mit .equal() ueberpruefen, ob die Strings gleich sind) und dann ggf. die Felder im Array fuer Haeufigkeiten um eins inkrementieren.
Ich hoffe ihr versteht so in etwa, wie ich das meine.
Am Schluss koennte ich ja dann das ganze auch wieder mit einer FOR-Schleife ausgeben - sollte ja kein Problem sein..
Folgend mein erster Entwurf, der aber leider noch nicht funktioniert:
Ich wuerde mich freuen, wenn ihr vielleicht doch eine Idee habt, wie's leichter geht, da mir die oben ersichtliche Variante doch relativ kompliziert scheint (und ja auch 'noch' nicht funktioniert).
Beziehungsweise wenn es euch moeglich ist den Fehler zu finden (denke aber, dass es nicht nur einer ist), waere das super!
Vielen Dank für Eure Antworten!
Gruß und schoenen Abend noch..
Patrick
[JAVA Anfaenger]
habe bereits die Forensuche verwendet, jedoch keinen passenden Thread zu diesem Thema gefunden.
Es geht darum, dass ich ein Tool, zum Auswerten der Haeufigkeiten der einzelnen Buchstaben in einem Satz, schreiben möchte.
Leider sind wir noch nicht sehr weit in JAVA, sodass ich wenn moeglich das ganze mit Feldern umsetzen moechte. Ich dachte mir, dass ich ja drei Arrays erstellen koennte, eins fuer die Buchstaben, eins fuer die Haeufigkeiten der verschiedenen Buchstaben und eins letzendlich fuer die Buchstaben des eingelesen Strings. Die koennte ich dann ja mit einer FOR-Schleife vergleichen (in einem IF-Konstrukt mit .equal() ueberpruefen, ob die Strings gleich sind) und dann ggf. die Felder im Array fuer Haeufigkeiten um eins inkrementieren.
Ich hoffe ihr versteht so in etwa, wie ich das meine.
Am Schluss koennte ich ja dann das ganze auch wieder mit einer FOR-Schleife ausgeben - sollte ja kein Problem sein..
Folgend mein erster Entwurf, der aber leider noch nicht funktioniert:
Java:
private void btnAuswertungActionPerformed(java.awt.event.ActionEvent evt) {
// Array mit Vergleichsbuchstaben
char[] buchstaben = {'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'};
// Array zum Speichern der Haeufigkeit
int[] haeufigkeit;
haeufigkeit = new int[27];
// Benutzereingabe lesen, Leerzeichen entfernen und in String in CharArray speichern
String benutzerEingabe = txtBenutzerIn.getText().replaceAll(" ", "");
char[] eingabe = benutzerEingabe.toCharArray();
// Counter (fuer Benutzereingabe) deklarieren und initalisieren
int cnt = 0;
// Haeufigkeit mit FOR-Schleife berechnen
for (int i = 0; cnt < eingabe.length;) {
if (String.valueOf(eingabe[cnt]).equals(String.valueOf(buchstaben[i]))) {
cnt++;
haeufigkeit[i]++;
} else {
i++;
}
}
// Haeufigkeit der einzelnen Buchstaben ausgeben
for (int i = 0; i < buchstaben.length; i++) {
if (i == 0) {
txtOutput.setText(buchstaben[i] + ": kommt" + haeufigkeit[i] + " mal vor.");
} else {
txtOutput.setText(txtOutput.getText() + "\n" + buchstaben[i] + " kommt" + haeufigkeit[i] + " mal vor.");
}
}
}
Ich wuerde mich freuen, wenn ihr vielleicht doch eine Idee habt, wie's leichter geht, da mir die oben ersichtliche Variante doch relativ kompliziert scheint (und ja auch 'noch' nicht funktioniert).
Beziehungsweise wenn es euch moeglich ist den Fehler zu finden (denke aber, dass es nicht nur einer ist), waere das super!
Vielen Dank für Eure Antworten!
Gruß und schoenen Abend noch..
Patrick
[JAVA Anfaenger]