logo

Java String compareTo() metod med exempel

Strängar i Java är objekt som endast stöds internt av en array, vilket innebär kontinuerlig tilldelning av minne för tecken. Observera att strängar är oföränderliga i Java, vilket innebär att när vi väl har skapat ett String-objekt och tilldelar det några värden kan vi inte ändra innehållet. Men vi kan skapa ett annat String-objekt med de ändringar vi vill ha.

String-klassen i Java innehåller många metoder för att utföra olika operationer på strängar och vi kommer att fokusera på Java-strängen jämföra med() metod i den här artikeln.



Java String.compareTo() metod

Java jämföra med() metoden jämför den givna strängen med den aktuella strängen lexikografiskt . Den returnerar ett positivt tal, ett negativt tal eller 0. Den jämför strängar baserat på Unicode-värde av varje tecken i strängarna.

Exempel:

Java








tring till int
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.'>);> >}> >}> }>

>

>

Produktion:

Geeks and Geeks are lexicographically equal.>

Syntax

int comparison = str1.compareTo(str2);>

Parametrar:

  • str1: Sträng 1 för jämförelse
  • str2: Sträng 2 för jämförelse

Returnerar:

  • om sträng1> sträng2 , den återkommer positiv siffra
  • om sträng1 , den återkommer negativ siffra
  • om sträng1 == sträng2 , den återkommer 0

Undantag: Det ger följande två undantag:

  • NullPointerException- om det angivna objektet är Null.
  • ClassCastException- om det aktuella objektet inte kan jämföras med det angivna objektet.

Varianter av CompareTo()-metoden

Det finns tre varianter av jämföra med() metod som är följande:

  1. använder int compareTo(Object obj)
  2. använder int compareTo(String AnotherString)
  3. använder int compareToIgnoreCase(String str)

1. int compareTo(Object obj)

Denna metod jämför denna sträng med ett annat objekt.

Syntax:

int compareTo(Object obj)>

Parametrar:

  obj:   the Object to be compared.>

Returvärde: Värdet 0 om argumentet är en sträng som är lexikografiskt lika med denna sträng; ett värde mindre än 0 om argumentet är en sträng som är lexikografiskt större än denna sträng; och ett värde större än 0 om argumentet är en sträng lexikografiskt mindre än denna sträng.

Exempel:

Nedan är implementeringen av 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));> >}> }>

>

>

Produktion

Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>

2. int compareTo(String anotherString)

Denna metod jämför två strängar lexikografiskt.

Syntax:

int compareTo(String anotherString)>

Parametrar:

  anotherString:    the String to be compared.>

Returvärde: Värdet 0 om argumentet är en sträng som är lexikografiskt lika med denna sträng; ett värde mindre än 0 om argumentet är en sträng lexikografiskt större än denna sträng; och ett värde större än 0 om argumentet är en sträng lexikografiskt mindre än denna sträng.

Exempel:

Nedan är implementeringen av 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));> >}> }>

>

npm ren cache
>

Produktion

Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>

3. int compareToIgnoreCase(String str)

Denna metod jämför två strängar lexikografiskt och ignorerar skillnader mellan skiftlägen.

Syntax:

int compareToIgnoreCase(String str)>

Parametrar:

  str:   the String to be compared.>

Returvärde: Den här metoden returnerar ett negativt heltal, noll eller ett positivt heltal eftersom den angivna strängen är större än, lika med eller mindre än denna sträng, och ignorerar skiftlägesöverväganden.

Exempel:

Nedan är implementeringen av int compareToIgnoreCase(String str):

sträng hitta c++

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));> >}> }>

>

>

Produktion

Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>

Undantag i Java String compareTo() Method

compareTo()-metoden i Java kan ge upphov till två möjliga undantag:

  • NullPointerException
  • ClassCastException

compareTo() NullPointerException

I Java kastar metoden compareTo() ett NullPointerException om något av objekten som jämförs är null . Detta säkerställer att du explicit hanterar nollvärden och förhindrar oväntat beteende.

Exempel:

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);> }> }>

>

>

Produktion:

  Exception in thread 'main' java.lang.NullPointerException      at cmp5.main(cmp5.java:11)>

compareTo() ClassCastException

Det är ett runtime-undantag och inträffar när två objekt av inkompatibla typer jämförs i metoden compareTo().

Exempel:

Java




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);> >}> }>

>

>

Produktion:

./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>

Läs också:

  1. Jämför två strängar i Java
  2. Jämför två strängar lexikografiskt i Java
  3. Java Integer compareTo()-metoden

Slutsats

compareTo()-funktionen i Java används för att jämföra två strängar eller objekt lexikografiskt. Det returnerar ett positivt, noll eller negativt heltal. I den här handledningen har vi täckt denna metod och diskuterat dess funktion och undantag.

Läs mer Java-strängmetoder

Java String CompareTo() Method- FAQs

Hur jämför man strängar i Java?

Du kan jämföra strängar i Java med metoden compareTo(). Den accepterar två parametrar och jämför dem lexikografiskt.

söndra karta

Vad är skillnaden mellan metoden compareTo() och metoden equals() i Java?

metoden equals(). compareTo()-metoden
Används för att kontrollera om två objekt är exakt likadana. Används för att jämföra två objekt och bestämma deras relativa ordning.

Returnerar ett booleskt värde:

  • sant om objekten anses lika.
  • falskt annars.

Returnerar ett heltal:

  • Negativt värde om det första objektet anses vara mindre än det andra.
  • Noll om objekten anses lika.
  • Positivt värde om det första objektet anses vara större än det andra.

Vad returnerar compareTo () i Java?

compareTo()-metoden i Java returnerar ett heltal. Det kan ha tre möjliga värden:

  • Negativt värde: När det första objektet anses vara mindre än det andra.
  • Noll: När objekten anses lika.
  • Positivt värde: När det första objektet anses vara större än det andra.