Einfache Möglichkeit zum Sortieren von Zeichenfolgen in der (groß-Kleinschreibung) alphabetischer Reihenfolge
Ich muss Sortieren Liste von strings in alphabetischer Reihenfolge:
List<String> list = new ArrayList();
list.add("development");
list.add("Development");
list.add("aa");
list.add("AA");
list.add("Aa");
Einen gemeinsamen Weg, es zu tun, ist die Verwendung Komparator:
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
Das problem der CaseInsensitiveComparator, dass "AA -" ist gleich "aa". Zeichenfolgen werden in der Folge gemäß der Reihenfolge der Zugabe für die gleichen Werte, und es ist nicht richtig:
"aa","AA","Aa","development","Development"
InformationsquelleAutor der Frage Michael | 2012-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht möchten, hinzufügen einer Abhängigkeit Guave (nach Michael ' s Antwort) dann ist dieser Komparator ist äquivalent:
Und ich denke, es ist genauso einfach zu verstehen und code ...
Den letzten 4 Zeilen der Methode kann geschrieben prägnanter wie folgt:
InformationsquelleAutor der Antwort Stephen C
Den einfachen Weg, das problem zu lösen, ist die Verwendung ComparisonChain aus Guave
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ComparisonChain.html
Den ersten Komparator aus der Kette Sortieren von Zeichenfolgen nach die groß-und Kleinschreibung um, und der zweite Komparator-Sortieren von Zeichenfolgen nach die groß-und Kleinschreibung um.
Als vorbehalten Zeichenfolgen werden in der Folge nach der alphabetischen Reihenfolge:
InformationsquelleAutor der Antwort Michael
Ich habe vor kurzem eine ähnliche Frage beantwortet hier. Die Anwendung der gleichen Vorgehensweise, um Ihr problem ergäbe folgende Lösung:
InformationsquelleAutor der Antwort missingfaktor
Verwenden Sie einfach
ohne String.CASE_INSENSITIVE_ORDER comparator-parameter.
InformationsquelleAutor der Antwort L. G.
InformationsquelleAutor der Antwort Darshana Ekanayake