logo

Java String CompareTo() Methode met voorbeelden

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 , het keert terug negatief nummer
  • 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:

  1. met behulp van int CompareTo(Object obj)
  2. met behulp van int CompareTo(String AnotherString)
  3. 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:

  1. Vergelijk twee strings in Java
  2. Vergelijk twee strings lexicografisch in Java
  3. 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.