logo

Java String compareTo() Mètode amb exemples

Les cadenes a Java són objectes que només són compatibles internament amb una matriu, la qual cosa significa una assignació contigua de memòria per a caràcters. Tingueu en compte que les cadenes són immutables a Java, la qual cosa significa que una vegada que creem un objecte String i li assignem alguns valors, no podem canviar el contingut. Tanmateix, podem crear un altre objecte String amb les modificacions que vulguem.

La classe String de Java inclou molts mètodes per executar diverses operacions sobre cadenes i ens centrarem en la cadena Java. comparat amb() mètode en aquest article.



Mètode Java String.compareTo().

El Java comparat amb() El mètode compara la cadena donada amb la cadena actual lexicogràficament . Retorna un nombre positiu, un nombre negatiu o 0. Compara cadenes basades en el Valor Unicode de cada caràcter de les cadenes.

Exemple:

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

>

>

Sortida:

Geeks and Geeks are lexicographically equal.>

Sintaxi

int comparison = str1.compareTo(str2);>

Paràmetres:

  • str1: Cadena 1 per a la comparació
  • str2: Cadena 2 per a la comparació

Devolucions:

  • si cadena1> cadena2 , torna positiu nombre
  • si cadena 1 , torna negatiu nombre
  • si cadena1 == cadena2 , torna 0

Excepció: Presenta dues excepcions següents:

  • NullPointerException- si l'objecte especificat és nul.
  • ClassCastException- si l'objecte actual no es pot comparar amb l'objecte especificat.

Variants del mètode CompareTo().

N'hi ha tres variants del comparat amb() mètode que són els següents:

el que és 10 d'1 milió
  1. utilitzant int compareTo(Object obj)
  2. utilitzant int compareTo(String AnotherString)
  3. utilitzant int compareToIgnoreCase(String str)

1. int comparaTo(Objecte objecte)

Aquest mètode compara aquesta cadena amb un altre objecte.

Sintaxi:

int compareTo(Object obj)>

Paràmetres:

  obj:   the Object to be compared.>

Valor de retorn: El valor 0 si l'argument és una cadena lexicogràficament igual a aquesta cadena; un valor inferior a 0 si l'argument és una cadena lexicogràficament més gran que aquesta cadena; i un valor superior a 0 si l'argument és una cadena lexicogràficament inferior a aquesta cadena.

Exemple:

matemàtiques.java aleatòria

A continuació es mostra la implementació de 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));> >}> }>

>

>

Sortida

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

2. int comparaTo(String anotherString)

Aquest mètode compara dues cadenes lexicogràficament.

Sintaxi:

int compareTo(String anotherString)>

Paràmetres:

  anotherString:    the String to be compared.>

Valor de retorn: El valor 0 si l'argument és una cadena lexicogràficament igual a aquesta cadena; un valor inferior a 0 si l'argument és una cadena lexicogràficament més gran que aquesta cadena; i un valor superior a 0 si l'argument és una cadena lexicogràficament inferior a aquesta cadena.

Exemple:

A continuació es mostra la implementació de int compareTo(String anotherString):

Java

terminal kali linux




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

>

>

Sortida

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

3. int compareToIgnoreCase(String str)

Aquest mètode compara dues cadenes lexicogràficament, ignorant les diferències entre majúscules i minúscules.

Sintaxi:

int compareToIgnoreCase(String str)>

Paràmetres:

  str:   the String to be compared.>

Valor de retorn: Aquest mètode retorna un nombre enter negatiu, zero o un nombre enter positiu, ja que la cadena especificada és major, igual o menor que aquesta cadena, ignorant les consideracions de majúscules i minúscules.

Exemple:

A continuació es mostra la implementació de int compareToIgnoreCase(String str):

Java




python snake vs anaconda

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

>

>

Sortida

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

Excepcions al mètode Java String compareTo().

El mètode compareTo() a Java pot plantejar dues possibles excepcions:

  • NullPointerException
  • ClassCastException

compareTo() NullPointerException

A Java, el mètode compareTo() llança una NullPointerException si algun dels objectes que es comparen és nul . Això garanteix que gestioneu explícitament els valors nuls i prevé un comportament inesperat.

Exemple:

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

>

>

Sortida:

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

compareTo() ClassCastException

És una excepció en temps d'execució i es produeix quan es comparen dos objectes de tipus incompatibles en el mètode compareTo().

Exemple:

Java




tipus de retorn en 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);> >}> }>

>

>

Sortida:

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

Llegeix també:

  1. Compareu dues cadenes a Java
  2. Compareu dues cadenes lexicogràficament a Java
  3. Mètode Java Integer compareTo().

Conclusió

La funció compareTo() a Java s'utilitza per comparar dues cadenes o objectes lexicogràficament. Retorna un nombre enter positiu, zero o negatiu. En aquest tutorial, hem tractat aquest mètode i hem comentat el seu funcionament i les excepcions.

Llegeix més Mètodes de cadena Java

Mètode Java String CompareTo() - Preguntes freqüents

Com comparar cadenes a Java?

Podeu comparar cadenes a Java utilitzant el mètode compareTo(). Accepta dos paràmetres i els compara lexicogràficament.

Quina diferència hi ha entre el mètode compareTo() i el mètode equals() a Java?

mètode equals(). mètode compareTo().
S'utilitza per comprovar si dos objectes són exactament iguals. S'utilitza per comparar dos objectes i determinar el seu ordre relatiu.

Retorna un booleà:

  • cert si els objectes es consideren iguals.
  • fals en cas contrari.

Retorna un nombre enter:

  • Valor negatiu si el primer objecte es considera menor que el segon.
  • Zero si els objectes es consideren iguals.
  • Valor positiu si el primer objecte es considera més gran que el segon.

Què retorna compareTo () a Java?

El mètode compareTo() de Java retorna un nombre enter. Pot tenir tres valors possibles:

  • Valor negatiu: Quan el primer objecte es considera menys que el segon.
  • Zero: Quan els objectes es consideren iguals.
  • Valor positiu: Quan el primer objecte es considera més gran que el segon.