Le stringhe in Java sono oggetti supportati internamente solo da un array, il che significa un'allocazione contigua di memoria per i caratteri. Tieni presente che le stringhe sono immutabili in Java, il che significa che una volta creato un oggetto String e assegnato ad esso alcuni valori, non possiamo modificare il contenuto. Tuttavia possiamo creare un altro oggetto String con le modifiche che vogliamo.
La classe String di Java comprende molti metodi per eseguire varie operazioni sulle stringhe e ci concentreremo sulla String Java Paragonare a() metodo in questo articolo.
Metodo Java String.compareTo()
Il Giava Paragonare a() Il metodo confronta la stringa data con la stringa corrente lessicograficamente . Restituisce un numero positivo, un numero negativo o 0. Confronta le stringhe in base a Valore Unicode di ciascun carattere nelle stringhe.
Esempio:
Giava
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.'> );> > }> > }> }> |
>
>
Produzione:
Geeks and Geeks are lexicographically equal.>
Sintassi
int comparison = str1.compareTo(str2);>
parametri:
- stringa1: Stringa 1 per il confronto
- str2: Stringa 2 per confronto
Ritorna:
- Se stringa1> stringa2 , ritorna positivo numero
- Se stringa1
- Se stringa1 == stringa2 , ritorna 0
Eccezione: Genera le seguenti due eccezioni:
- NullPointerException- se l'oggetto specificato è Null.
- ClassCastException- se l'oggetto corrente non può essere confrontato con l'oggetto specificato.
Varianti del metodo CompareTo()
Ci sono tre varianti del Paragonare a() metodo che sono i seguenti:
- utilizzando int compareTo(Oggetto oggetto)
- utilizzando int compareTo(String AnotherString)
- utilizzando int compareToIgnoreCase(String str)
1. int confrontaTo(Oggetto oggetto)
Questo metodo confronta questa stringa con un altro oggetto.
Sintassi:
int compareTo(Object obj)>
parametri:
obj: the Object to be compared.>
Valore di ritorno: Il valore 0 se l'argomento è una stringa lessicograficamente uguale a questa stringa; un valore inferiore a 0 se l'argomento è una stringa lessicograficamente maggiore di questa stringa; e un valore maggiore di 0 se l'argomento è una stringa lessicograficamente inferiore a questa stringa.
Esempio:
Di seguito è riportata l'implementazione di int compareTo(Object obj):
Giava
// 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));> > }> }> |
>
>Produzione
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Questo metodo confronta due stringhe lessicograficamente.
Sintassi:
int compareTo(String anotherString)>
parametri:
anotherString: the String to be compared.>
Valore di ritorno: Il valore 0 se l'argomento è una stringa lessicograficamente uguale a questa stringa; un valore inferiore a 0 se l'argomento è una stringa lessicograficamente maggiore di questa stringa; e un valore maggiore di 0 se l'argomento è una stringa lessicograficamente inferiore a questa stringa.
Esempio:
Di seguito è riportata l'implementazione di int compareTo(String anotherString):
Giava
stringa.format stringa 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));> > }> }> |
>
>Produzione
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Questo metodo confronta due stringhe lessicograficamente, ignorando le differenze tra maiuscole e minuscole.
Sintassi:
int compareToIgnoreCase(String str)>
parametri:
str: the String to be compared.>
Valore di ritorno: Questo metodo restituisce un numero intero negativo, zero o un numero intero positivo poiché la stringa specificata è maggiore, uguale o inferiore a questa stringa, ignorando le considerazioni sul caso.
Esempio:
Di seguito è riportata l'implementazione di int compareToIgnoreCase(String str):
Giava
// 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));> > }> }> |
>
>Produzione
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Eccezioni nel metodo Java String compareTo()
Il metodo compareTo() in Java può sollevare due possibili eccezioni:
- NullPointerException
- ClassCastException
compareTo() NullPointerException
In Java, il metodo compareTo() lancia una NullPointerException se uno degli oggetti confrontati lo è nullo . Ciò garantisce la gestione esplicita dei valori null e impedisce comportamenti imprevisti.
Esempio:
Giava
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);> }> }> |
>
>
Produzione:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Si tratta di un'eccezione di runtime e si verifica quando due oggetti di tipi incompatibili vengono confrontati nel metodo compareTo().
Esempio:
Giava
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);> > }> }> |
selezione ordinamento java
>
>
Produzione:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Leggi anche:
- Confronta due stringhe in Java
- Confronta due stringhe lessicograficamente in Java
- Metodo Java Integer compareTo()
Conclusione
La funzione compareTo() in Java viene utilizzata per confrontare due stringhe o oggetti lessicograficamente. Restituisce un numero intero positivo, zero o negativo. In questo tutorial, abbiamo trattato questo metodo e ne abbiamo discusso il funzionamento e le eccezioni.
Per saperne di più Metodi di stringa Java
Metodo Java String CompareTo(): domande frequenti
Come confrontare le stringhe in Java?
Puoi confrontare stringhe in Java utilizzando il metodo compareTo(). Accetta due parametri e li confronta lessicograficamente.
Qual è la differenza tra il metodo compareTo() e il metodo equals() in Java?
metodo equals() metodo compareTo() Utilizzato per verificare se due oggetti sono esattamente uguali. Utilizzato per confrontare due oggetti e determinare il loro ordine relativo. Restituisce un valore booleano:
- true se gli oggetti sono considerati uguali.
- falso altrimenti.
Restituisce un numero intero:
- Valore negativo se il primo oggetto è considerato minore del secondo.
- Zero se gli oggetti sono considerati uguali.
- Valore positivo se il primo oggetto è considerato maggiore del secondo.
Cosa restituisce compareTo () in Java?
il metodo compareTo() in Java restituisce un numero intero. Può assumere tre possibili valori:
- Valore negativo: Quando il primo oggetto è considerato inferiore al secondo.
- Zero: Quando gli oggetti sono considerati uguali.
- Valore positivo: Quando il primo oggetto è considerato maggiore del secondo.