Java's String compareTo() Methode beheersen: Syntaxis, Use Cases en Praktische Voorbeelden
Wat Is compareTo() in Java?
De compareTo() methode vergelijkt twee strings lexicografisch. Elk karakter wordt omgezet naar zijn Unicode-waarde, en de methode retourneert een int dat de relatieve ordening aangeeft. Als de strings identiek zijn, retourneert het 0; anders is het resultaat negatief als de eerste string de tweede voorafgaat, of positief als het volgt.
Deze methode is gedefinieerd in de java.lang.Comparable interface.
Syntaxis
public int compareTo(String str)
Parameter: str – de string om te vergelijken met de aanroepende string.
Retourwaarde: Een int die negatief, nul of positief is afhankelijk van de lexicografische volgorde.
< 0– de aanroepende string is lexicografisch eerste.== 0– de twee strings zijn gelijk.> 0– de argumentstring is lexicografisch eerste.
Voorbeeld 1: Basisgebruik
public class SampleString { public static void main(String[] args) { String str = "a"; System.out.println("Compare \"a\" to \"b\": " + str.compareTo("b")); str = "b"; System.out.println("Compare \"b\" to \"a\": " + str.compareTo("a")); str = "b"; System.out.println("Compare \"b\" to \"b\": " + str.compareTo("b")); } }
Output
- Compare "a" to "b": -1
- Compare "b" to "a": 1
- Compare "b" to "b": 0
Uitleg:
- "a" komt vóór "b" alfabetisch, dus het resultaat is negatief.
- "b" komt na "a", producerend een positief resultaat.
- Identieke strings leveren nul op.
Voorbeeld 2: Case-Sensitive vs. Case-Insensitive
public class SampleString { public static void main(String[] args) { String str = "RockStar"; System.out.println("Case‑sensitive compare to \"rockstar\": " + str.compareTo("rockstar")); System.out.println("Case‑insensitive compare to \"ROCKSTAR\": " + str.compareToIgnoreCase("ROCKSTAR")); } }
Output
- Case‑sensitive compare to "rockstar": -32
- Case‑insensitive compare to "ROCKSTAR": 0
Wanneer compareTo() Gebruiken
Gebruik compareTo() wanneer je natuurlijke (lexicale) ordening van strings nodig hebt, zoals het sorteren van een lijst met namen of het uitvoeren van dictionary lookups. De methode volgt dezelfde regels als de String.compareToIgnoreCase() methode maar respecteert case.
Typische scenario's zijn:
- Collecties van
Stringobjecten sorteren metCollections.sort(). Comparableimplementeren in custom classes die stringvergelijking nodig hebben.- Binaire zoekopdracht op gesorteerde string-arrays uitvoeren.
Voorbeeld 3: Praktische Vergelijking
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 + "\" is lexicografisch hoger dan \"" + s2 + "\""); } else if (result == 0) { System.out.println("\"" + s1 + "\" is lexicografisch gelijk aan \"" + s2 + "\""); } else { System.out.println("\"" + s1 + "\" is lexicografisch lager dan \"" + s2 + "\""); } } }
Output
- String 1: Guru1
- String 2: Guru2
- "Guru1" is lexicografisch hoger dan "Guru2"
Java
- Python print()-functie: Praktische handleiding met voorbeelden
- Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
- Java String length() Methode: Hoe de grootte van een String op te vragen (Voorbeeld)
- Java String.indexOf() beheersen: Substrings lokaliseren & praktische voorbeelden
- Java String.charAt() begrijpen: Syntaxis, Retourtype, Exceptions en Praktisch Voorbeeld
- Java String.contains() Methode: Controleren op Substrings – Praktische Voorbeelden
- Java String.endsWith() beheersen: Controleren op String-suffixen met voorbeelden
- Java String Vervanging beheersen: replace(), replaceAll() en replaceFirst() uitgelegd
- Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden
- Een char omzetten naar een String in Java – Praktische voorbeelden en best practices
- Een String omkeren in Java met recursie – Stapsgewijze handleiding