Schönen guten Abends zusammen;
ich versuche zurzeit ein kl. Programm zu schreiben, dass die Häufigkeit der gleichen Strings in einem Array ausgibt.
Beispiel:
Es soll also ausgegeben werden:
2 x a
2 x b
3 x c
.
.
Das Prinzip ist, dass die Wörter alphabetisch in dem String erstmal geordnet werden, sodass gleiche Wörter hintereinander stehen (im Array)--> mit der Methode: Array.sort(). Nun soll das Programm erst einmal die Anzahl der verschiedenen Wörter ausgeben (ohne zu sagen, welche Anzahl welchem Wört zugehörig ist)
Ich bin mir auch ziemlich sicher, dass ich das soweit auch hinbekommen habe, nur kann ich die entsprechende Do-While Schleife nictht weit genug durchlaufen lassen: (sodass bei diesem Beispiel nur folgendes ausgegeben wird:
2,2,3,0 obwohl es lauten müsste: 2,2,3,4.
Der letzte Schleifendurchlauf fehlt, doch wenn ich statt a<7; a<eins.length-2 schreibe, kommt eine Fehlermeldung.
Warum ist das so?
Es ist vll noch nicht der sortierteste Code, aber es geht mir erst mal nur ums Prinzip.
Danke schon mal im Voraus
ich versuche zurzeit ein kl. Programm zu schreiben, dass die Häufigkeit der gleichen Strings in einem Array ausgibt.
Beispiel:
Code:
String [] eins={"a","a","c","c","b","b","c","e","e","e","e"};
2 x a
2 x b
3 x c
.
.
Das Prinzip ist, dass die Wörter alphabetisch in dem String erstmal geordnet werden, sodass gleiche Wörter hintereinander stehen (im Array)--> mit der Methode: Array.sort(). Nun soll das Programm erst einmal die Anzahl der verschiedenen Wörter ausgeben (ohne zu sagen, welche Anzahl welchem Wört zugehörig ist)
Ich bin mir auch ziemlich sicher, dass ich das soweit auch hinbekommen habe, nur kann ich die entsprechende Do-While Schleife nictht weit genug durchlaufen lassen: (sodass bei diesem Beispiel nur folgendes ausgegeben wird:
2,2,3,0 obwohl es lauten müsste: 2,2,3,4.
Der letzte Schleifendurchlauf fehlt, doch wenn ich statt a<7; a<eins.length-2 schreibe, kommt eine Fehlermeldung.
Warum ist das so?
Code:
import java.util.*;
public class NachAnzahlSortieren {
static int anzahl[] = new int[4];
static String namen[] = new String[4];
public static void main(String[] args) {
errechnen();
}
public static void errechnen (){
String [] eins={"a","a","c","c","b","b","c","e","e","e","e"};
Arrays.sort(eins);
System.out.println(Arrays.toString(eins));
int a=0;
int nachste=1;
int zahl=1;
int stelle=0;
do{
while(eins[a].equals(eins[nachste])){
zahl++;
a++;
nachste++;
}
anzahl[stelle]=zahl;
stelle++;
a++; nachste++;
zahl=1;
System.out.println("mal");
}while(a<7);
System.out.println(Arrays.toString(anzahl));
}
}
Es ist vll noch nicht der sortierteste Code, aber es geht mir erst mal nur ums Prinzip.
Danke schon mal im Voraus