feuerteufel
gesperrt
- Registriert
- 14 Juli 2013
- Beiträge
- 351
Hallo,
für ein Programm brauche ich eine Funktion die folgendes tut:
- Es wird ein String übergeben
- Die Buchstaben werden sortiert
- Ich brauche die alte Position der Buchstaben in einer Reihenfolge.
Zum Beispiel:
CAB
Sortiert ergibt das ABC
Die Positionen wären - beginnend bei 0:
1, 2, 0
Ein anderes Beispiel habe ich mit dem Wort "AUTOHAUS" angehängt.
Ich habe schon etwas ausprobiert, was aber nicht so klappt:
[src=java]private List<Integer> sortChars(String l){
List<Integer> sortiert = new ArrayList<>();
int amKleinsten;
char tempChar;
int grenze = l.length();
for(int i=0; i<grenze; i++){
amKleinsten = i;
tempChar = l.charAt(i);
boolean enthaelt;
for(int k=0; k<grenze; k++){
enthaelt = sortiert.contains(k);
if(tempChar > l.charAt(k) && enthaelt == false){
tempChar = l.charAt(k);
amKleinsten = k;
}
}
sortiert.add(amKleinsten);
}
return sortiert;
}[/src]
Die erste for-Schleife geht Buchstabe für Buchstabe durch, um in der zweiten for-Schleife (verschachtelt) zu prüfen, ob es noch andere "kleinere" chars gibt.
Dann wird die Position des kleinsten Buchstabens abgespeichert in einer ArrayList.
Sieht vielleicht jemand einen Fehler oder kennt ihr ein anderes Konzept?
Viele Grüße
für ein Programm brauche ich eine Funktion die folgendes tut:
- Es wird ein String übergeben
- Die Buchstaben werden sortiert
- Ich brauche die alte Position der Buchstaben in einer Reihenfolge.
Zum Beispiel:
CAB
Sortiert ergibt das ABC
Die Positionen wären - beginnend bei 0:
1, 2, 0
Ein anderes Beispiel habe ich mit dem Wort "AUTOHAUS" angehängt.
Ich habe schon etwas ausprobiert, was aber nicht so klappt:
[src=java]private List<Integer> sortChars(String l){
List<Integer> sortiert = new ArrayList<>();
int amKleinsten;
char tempChar;
int grenze = l.length();
for(int i=0; i<grenze; i++){
amKleinsten = i;
tempChar = l.charAt(i);
boolean enthaelt;
for(int k=0; k<grenze; k++){
enthaelt = sortiert.contains(k);
if(tempChar > l.charAt(k) && enthaelt == false){
tempChar = l.charAt(k);
amKleinsten = k;
}
}
sortiert.add(amKleinsten);
}
return sortiert;
}[/src]
Die erste for-Schleife geht Buchstabe für Buchstabe durch, um in der zweiten for-Schleife (verschachtelt) zu prüfen, ob es noch andere "kleinere" chars gibt.
Dann wird die Position des kleinsten Buchstabens abgespeichert in einer ArrayList.
Sieht vielleicht jemand einen Fehler oder kennt ihr ein anderes Konzept?
Viele Grüße