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
- 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ó
- utilitzant int compareTo(Object obj)
- utilitzant int compareTo(String AnotherString)
- 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é:
- Compareu dues cadenes a Java
- Compareu dues cadenes lexicogràficament a Java
- 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.