Hallo,
ich möchte Zeichenketten aufsteigend sortieren lassen. Alle (fast) Zeichenketten bestehen aus Zahlen und Trennstrichen, gefolgt von '__' und danach ein Name, z.B.
123456__name
123456-1__name
123456-1-1__name
123456-11-1__name
123456-2-1__name
123456-2-2__name
123456-2-1-1__name
123456-20__name
123456-20-1__name
usw.
Hierzu habe ich einen Comparator geschrieben, der diese Zeichenketten nur nach der Zahlenkombination bis zum '__' sortiert:
Das geht auch soweit erstmal.
Nur sortiert mir der Comparator diese Zeichenketten eben nach Stringsortierungs-Kriterium und nicht nach Integer-Kriterium, d.h. nach einer 1 kommt eine 11 und keine 2, also:
123456-1
123456-11
123456-2
123456-21
123456-3
usw.
Korrekterweiße sollte es aber so aussehen:
123456-1
123456-2
123456-3
123456-11
123456-21
usw.
Läßt sich das irgendwie bewerkstelligen, dass ich die Zeichenkette quasi nummerisch aufsteigend sortieren kann?
Danke.
ich möchte Zeichenketten aufsteigend sortieren lassen. Alle (fast) Zeichenketten bestehen aus Zahlen und Trennstrichen, gefolgt von '__' und danach ein Name, z.B.
123456__name
123456-1__name
123456-1-1__name
123456-11-1__name
123456-2-1__name
123456-2-2__name
123456-2-1-1__name
123456-20__name
123456-20-1__name
usw.
Hierzu habe ich einen Comparator geschrieben, der diese Zeichenketten nur nach der Zahlenkombination bis zum '__' sortiert:
Code:
Comparator comparator = new Comparator() {
public int compare(Object arg0, Object arg1) {
String name1 = (String) arg0;
String name2 = (String) arg1;
String str1 = name1.substring(0,name1.lastIndexOf("__"));
String str2 = name2.substring(0,name2.lastIndexOf("__"));
return str1.compareTo(str2);
}
};
Nur sortiert mir der Comparator diese Zeichenketten eben nach Stringsortierungs-Kriterium und nicht nach Integer-Kriterium, d.h. nach einer 1 kommt eine 11 und keine 2, also:
123456-1
123456-11
123456-2
123456-21
123456-3
usw.
Korrekterweiße sollte es aber so aussehen:
123456-1
123456-2
123456-3
123456-11
123456-21
usw.
Läßt sich das irgendwie bewerkstelligen, dass ich die Zeichenkette quasi nummerisch aufsteigend sortieren kann?
Danke.