String s1 = "Project";
String s2 = "Sunject";
Ich möchte die beiden obigen Zeichenfolgen nach ihrer alphabetischen Reihenfolge vergleichen (in diesem Fall steht "Projekt" und dann "Sunject" als "P" vor "S"). Weiß jemand, wie man das in Java macht?
String#compareTo
beim lexikografischen Vergleich das Großbuchstaben "Z" vor dem Kleinbuchstaben "a" sortiert wird. Wenn Sie Zeichenfolgen in Groß- und Kleinschreibung alphabetisieren, benötigen Sie eine länderspezifische Reihenfolge. Für den Fall, dass der Link zur lokalisierten Reihenfolge von Zeichenfolgen unterbrochen wird, ist java.text.Collator zu verwenden .String#compareToIgnoreCase
Schauen Sie sich die
String.compareTo
Methode an.Aus den Javadocs:
quelle
quelle
Sie können die compareTo-Methode beider Zeichenfolgen (java.lang.String.compareTo) aufrufen. Diese Funktion ist auf der Java-Dokumentationsseite gut dokumentiert .
Hier ist ein kurzes Programm, das es demonstriert:
Hier ist eine Live-Demonstration, die zeigt, dass es funktioniert: http://ideone.com/Drikp3
quelle
Verwenden Sie für die alphabetische Reihenfolge nach der Verstaatlichung
Collator
.Eine Liste der unterstützten Gebietsschemas finden Sie unter JDK 8 und JRE 8 Unterstützte Gebietsschemas .
quelle
quelle
Wie andere vorgeschlagen haben, können Sie verwenden
String.compareTo(String)
.Wenn Sie jedoch eine Liste von Zeichenfolgen sortieren und eine benötigen
Comparator
, müssen Sie diese nicht implementieren, sondern könnenComparator.naturalOrder()
oder verwendenComparator.reverseOrder()
.quelle