Java String compareTo() meistern: Syntax, Anwendungsfälle und praktische Beispiele
Was ist compareTo() in Java?
Diese Methode ist im java.lang.Comparable-Interface definiert.
Syntax
public int compareTo(String str)
Parameter: str – der String, der mit dem aufrufenden String verglichen wird.
Rückgabewert: Ein int, der negativ, null oder positiv ist, abhängig von der lexikographischen Reihenfolge.
< 0– der aufrufende String ist lexikographisch zuerst.== 0– die beiden Strings sind gleich.> 0– der Argument-String ist lexikographisch zuerst.
Beispiel 1: Grundlegende Nutzung
public class SampleString {
public static void main(String[] args) {
String str = "a";
System.out.println("Vergleich \"a\" zu \"b\": " + str.compareTo("b"));
str = "b";
System.out.println("Vergleich \"b\" zu \"a\": " + str.compareTo("a"));
str = "b";
System.out.println("Vergleich \"b\" zu \"b\": " + str.compareTo("b"));
}
}
Ausgabe
- Vergleich "a" zu "b": -1
- Vergleich "b" zu "a": 1
- Vergleich "b" zu "b": 0
Erklärung:
- „a“ kommt vor „b“ alphabetisch, Ergebnis ist negativ.
- „b“ kommt nach „a“, positives Ergebnis.
- Identische Strings ergeben null.
Beispiel 2: Case-Sensitive vs. Case-Insensitive
public class SampleString {
public static void main(String[] args) {
String str = "RockStar";
System.out.println("Case-sensitive Vergleich mit \"rockstar\": " + str.compareTo("rockstar"));
System.out.println("Case-insensitive Vergleich mit \"ROCKSTAR\": " + str.compareToIgnoreCase("ROCKSTAR"));
}
}
Ausgabe
- Case-sensitive Vergleich zu "rockstar": -32
- Case-insensitive Vergleich zu "ROCKSTAR": 0
Wann compareTo() nutzen
Nutzen Sie compareTo(), wenn Sie natürliche (lexikale) Ordnung von Strings benötigen, z. B. beim Sortieren einer Namensliste oder Dictionary-Lookups. Die Methode folgt denselben Regeln wie String.compareToIgnoreCase(), respektiert aber Groß-/Kleinschreibung.
Typische Szenarien:
- Sortieren von Collections von
String-Objekten mitCollections.sort(). - Implementieren von
Comparablein benutzerdefinierten Klassen, die String-Vergleich benötigen. - Binäre Suche in sortierten String-Arrays.
Beispiel 3: Praktischer Vergleich
public class CompareDemo {
public static void main(String[] args) {
String s1 = "Guru1";
String s2 = "Guru2";
System.out.println("String 1: " + s1);
System.out.println("String 2: " + s2);
int result = s1.compareTo(s2);
if (result < 0) {
System.out.println("\"" + s1 + "\" ist lexikographisch vor \"" + s2 + "\"");
} else if (result == 0) {
System.out.println("\"" + s1 + "\" ist lexikographisch gleich \"" + s2 + "\"");
} else {
System.out.println("\"" + s1 + "\" ist lexikographisch nach \"" + s2 + "\"");
}
}
}
Ausgabe
- String 1: Guru1
- String 2: Guru2
- "Guru1" ist lexikographisch vor "Guru2"
Java
- Java String length() Methode: String-Länge ermitteln (Beispiel)
- Java String.indexOf() meistern: Substrings finden & praktische Beispiele
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String.contains() Methode: Substrings prüfen – praktische Beispiele
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Java String-Ersetzung meistern: replace(), replaceAll() und replaceFirst() erklärt
- Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
- Char in String in Java konvertieren – Praxisbeispiele und Best Practices
- String in Java mit Rekursion umkehren – Schritt-für-Schritt-Anleitung
- Python print()-Funktion: Praktischer Leitfaden mit Beispielen