Strings in Java zijn objecten die intern alleen door een array worden ondersteund, wat betekent dat er aaneengesloten geheugen voor tekens wordt toegewezen. Houd er rekening mee dat strings onveranderlijk zijn in Java, wat betekent dat zodra we een String-object maken en er waarden aan toekennen, we de inhoud niet kunnen wijzigen. We kunnen echter nog een String-object maken met de gewenste wijzigingen.
De String-klasse van Java bevat veel methoden om verschillende bewerkingen op strings uit te voeren en we zullen ons concentreren op de Java String vergelijk met() methode in dit artikel.
Java String.compareTo()-methode
De Java vergelijk met() methode vergelijkt de gegeven string met de huidige string lexicografisch . Het retourneert een positief getal, een negatief getal of 0. Het vergelijkt tekenreeksen op basis van de Unicode-waarde van elk teken in de strings.
Voorbeeld:
Java
public> class> StringCompareTo {> > public> static> void> main(String[] args) {> > String str1 => 'Geeks'> ;> > String str2 => 'Geeks'> ;> > int> comparison = str1.compareTo(str2);> > if> (comparison <> 0> ) {> > System.out.println(str1 +> ' comes before '> + str2 +> ' lexicographically.'> );> > }> else> if> (comparison>> 0> ) {> > System.out.println(str1 +> ' comes after '> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }> |
>
jdbc
>
Uitgang:
Geeks and Geeks are lexicographically equal.>
Syntaxis
int comparison = str1.compareTo(str2);>
Parameters:
- str1: Tekenreeks 1 ter vergelijking
- str2: Tekenreeks 2 ter vergelijking
Geeft terug:
- als tekenreeks1> tekenreeks2 , het keert terug positief nummer
- als tekenreeks1
- als tekenreeks1 == tekenreeks2 , het keert terug 0
Uitzondering: Het genereert de volgende twee uitzonderingen:
- NullPointerException- als het opgegeven object Null is.
- ClassCastException- als het huidige object niet kan worden vergeleken met het opgegeven object.
Varianten van de CompareTo()-methode
Er zijn drie varianten van de vergelijk met() methode die als volgt is:
- met behulp van int CompareTo(Object obj)
- met behulp van int CompareTo(String AnotherString)
- met behulp van int CompareToIgnoreCase(String str)
1. int CompareTo(Objectobject)
Deze methode vergelijkt deze String met een ander object.
Syntaxis:
int compareTo(Object obj)>
Parameters:
obj: the Object to be compared.>
Winstwaarde: De waarde 0 als het argument een string is die lexicografisch gelijk is aan deze string; een waarde kleiner dan 0 als het argument een string is die lexicografisch groter is dan deze string; en een waarde groter dan 0 als het argument een string is die lexicografisch kleiner is dan deze string.
Voorbeeld:
Hieronder vindt u de implementatie van int CompareTo(Object obj):
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp1 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => new> String(> 'geeksforgeeks'> );> > String str3 => new> String(> 'astha'> );> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks object> > System.out.print(> > 'Difference of geeksforgeeks(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha object> > System.out.print(> > 'Difference of astha(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>Uitvoer
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int vergelijkTo(String anotherString)
Deze methode vergelijkt twee strings lexicografisch.
C
Syntaxis:
int compareTo(String anotherString)>
Parameters:
anotherString: the String to be compared.>
Winstwaarde: De waarde 0 als het argument een string is die lexicografisch gelijk is aan deze string; een waarde kleiner dan 0 als het argument een string is die lexicografisch groter is dan deze string; en een waarde groter dan 0 als het argument een string is die lexicografisch kleiner is dan deze string.
Voorbeeld:
Hieronder vindt u de implementatie van int CompareTo(String anotherString):
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp2 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => 'geeksforgeeks'> ;> > String str3 => 'astha'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > System.out.print(> > 'Difference of geeksforgeeks(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > System.out.print(> > 'Difference of astha(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>Uitvoer
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int CompareToIgnoreCase(String str)
Deze methode vergelijkt twee strings lexicografisch, waarbij hoofdletterverschillen worden genegeerd.
Syntaxis:
int compareToIgnoreCase(String str)>
Parameters:
str: the String to be compared.>
Winstwaarde: Deze methode retourneert een negatief geheel getal, nul of een positief geheel getal, aangezien de opgegeven String groter is dan, gelijk aan of kleiner dan deze String, waarbij hoofdletteroverwegingen worden genegeerd.
Voorbeeld:
Hieronder vindt u de implementatie van int CompareToIgnoreCase(String str):
Java
// Java code to demonstrate the> // working of compareToIgnoreCase()> public> class> Cmp3 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeks'> ;> > String str2 => 'gEEkS'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > // case sensitive> > System.out.print(> > 'Difference of geeks and gEEkS (case sensitive) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > // case insensitive> > // using compareToIgnoreCase()> > System.out.print(> > 'Difference of geeks and gEEkS (case insensitive) : '> );> > System.out.println(str1.compareToIgnoreCase(str2));> > }> }> |
>
c willekeurig getal
>Uitvoer
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Uitzonderingen in Java String CompareTo()-methode
De methode CompareTo() in Java kan twee mogelijke uitzonderingen opleveren:
- NullPointerException
- ClassCastException
vergelijkTo() NullPointerException
In Java genereert de methode CompareTo() een NullPointerException als een van de objecten die worden vergeleken dat is nul . Dit zorgt ervoor dat u expliciet null-waarden verwerkt en voorkomt onverwacht gedrag.
Voorbeeld:
Java
public> class> cmp5> {> // main method> public> static> void> main(String[] args)> {> > String str => null> ;> > // null is invoking the compareTo method. Hence, the NullPointerException> // will be raised> int> no = str.compareTo(> 'Geeks'> );> > System.out.println(no);> }> }> |
>
>
Uitgang:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
vergelijkTo() ClassCastException
Het is een runtime-uitzondering en treedt op wanneer twee objecten van incompatibele typen worden vergeleken in de methode CompareTo().
Voorbeeld:
Java
Sara Ali Khan leeftijd
public> class> ClassCastExceptionExample {> > public> static> void> main(String[] args) {> > Object obj1 => 'Hello'> ;> > Object obj2 => 10> ;> // Integer object> > // Explicitly cast obj2 to String to force the exception> > int> comparison = ((String) obj2).compareTo(obj1);> > System.out.println(> 'Comparison: '> + comparison);> > }> }> |
>
>
Uitgang:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Lees ook:
- Vergelijk twee strings in Java
- Vergelijk twee strings lexicografisch in Java
- Java Integer CompareTo()-methode
Conclusie
De functie CompareTo() in Java wordt gebruikt om twee tekenreeksen of objecten lexicografisch te vergelijken. Het retourneert een positief, nul of negatief geheel getal. In deze tutorial hebben we deze methode besproken en de werking ervan en de uitzonderingen besproken.
Lees verder Java-tekenreeksmethoden
Java String CompareTo() Methode - Veelgestelde vragen
Hoe tekenreeksen in Java vergelijken?
U kunt tekenreeksen in Java vergelijken met de methode CompareTo(). Het accepteert twee parameters en vergelijkt deze lexicografisch.
Wat is het verschil tussen de methode CompareTo() en de methode equals() in Java?
gelijk aan() methode vergelijkTo() methode Wordt gebruikt om te controleren of twee objecten exact hetzelfde zijn. Wordt gebruikt om twee objecten te vergelijken en hun relatieve volgorde te bepalen. Retourneert een Booleaanse waarde:
- waar als de objecten als gelijk worden beschouwd.
- anders vals.
Geeft een geheel getal terug:
- Negatieve waarde als het eerste object als minder dan het tweede wordt beschouwd.
- Nul als de objecten als gelijk worden beschouwd.
- Positieve waarde als het eerste object groter wordt geacht dan het tweede.
Wat retourneert CompareTo () in Java?
De methode CompareTo() in Java retourneert een geheel getal. Het kan drie mogelijke waarden hebben:
- Negatieve waarde: Wanneer het eerste object als minder wordt beschouwd dan het tweede.
- Nul: Wanneer de objecten als gelijkwaardig worden beschouwd.
- Positieve waarde: Wanneer het eerste object als groter wordt beschouwd dan het tweede.