java string compareto method with programming examples
In questo tutorial impareremo a conoscere il metodo compareTo () della stringa Java e vedremo come e quando utilizzare compareTo in Java insieme alla sintassi e agli esempi:
Capirai come manipolare Java String con l'aiuto del metodo Java compareTo (). I tipi di output che otterremo tramite il metodo Java compareTo () saranno trattati anche in questo tutorial.
Dopo aver letto questo tutorial, sarai sicuramente in grado di comprendere e scrivere i programmi Java String che richiedono il metodo .compareTo () per la manipolazione delle stringhe.
=> Dai un'occhiata alla guida di formazione Java perfetta qui.
Cosa imparerai:
Metodo Java String compareTo ()
Il metodo Java String compareTo () viene utilizzato per verificare se due stringhe sono identiche o meno. Come suggerisce il nome, confronta due stringhe date e scopre se sono uguali o quale è maggiore.
Il tipo di ritorno del metodo Java compareTo () è un numero intero e la sintassi è data come:
int compareTo(String str)
Nella sintassi precedente, str è una variabile String che viene confrontata con la String invocante.
Per esempio: String1.compareTo (String2);
Un'altra variante di Java compareTo () è
int compareTo(Object obj)
Nella sintassi precedente, confronteremo una String con un Object obj.
Per esempio ,String1.compareTo ('Questo è un oggetto stringa');
Qui 'This is a String Object' è un argomento che stiamo passando a compareTo () e lo confronta con String1.
Tipi di output del metodo Java compareTo ()
L'output ha tre tipi basati sul valore dell'output.
Di seguito è riportata la tabella che spiega tutti e tre i tipi di valori di output.
compareTo () Valore di output | Descrizione |
---|---|
Zero | Due stringhe sono uguali. |
Maggiore di zero | La stringa che si richiama è maggiore di str. |
Meno di zero | La stringa invocante è minore di str. |
Comprendiamo queste tre varianti in dettaglio con l'aiuto di un esempio.
Un esempio di programmazione
Ecco un esempio del metodo Java compareTo (). Il confronto si basa sulla differenza nel valore ASCII dei caratteri. In termini generali, una stringa è minore dell'altra se viene prima dell'altra nel dizionario.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Grand Theft Auto'; String str2 = 'Assassin Creed'; String str3 = 'Call of Duty'; String str4 = 'Need for Speed'; String str5 = 'Grand Theft Auto'; System.out.println(str1.compareTo(str2)); // Since 'A' is greater than 'G' by 6 characters, so it will return 6 System.out.println(str2.compareTo(str3)); // Since 'C' is smaller than 'A' by 2 characters, so it will return -2 System.out.println(str3.compareTo(str4)); //Since 'N' is smaller than 'C' by 11 characters, so it will return -11 System.out.println(str4.compareTo(str1)); //Since 'G' is Greater than 'N' by 7 characters, so it will return 7 System.out.println(str1.compareTo(str5)); //Strings are equal } }
Produzione:
Spiegazione dell'esempio
Nell'esempio precedente, abbiamo preso cinque stringhe di input ed eseguito un confronto di base tra di loro utilizzando il metodo Java .compareTo (). Nel primo confronto, abbiamo 'A' maggiore di 'G' di 6 caratteri nella serie alfabetica, quindi restituisce +6. Nel secondo confronto, abbiamo 'C' più piccolo di 'A' di 2 caratteri, quindi restituisce -2.
Nell'ultimo confronto (tra str1 e str5), poiché entrambe le stringhe sono uguali, restituisce 0.
Vari scenari
Vediamo in dettaglio il metodo .compareTo (). Qui proveremo ad analizzare diversi scenari e l'output di ciascun caso.
Scenario 1: Considera le seguenti due stringhe. Li confronteremo e vedremo l'output.
String str1 = 'Software Testing';
String str2 = 'Guida al test del software';
Quale sarà l'output di str1.compareTo (str2)?
Risposta: Poiché str2 contiene 5 caratteri (uno spazio + quattro caratteri) in più rispetto alla prima stringa. L'output dovrebbe essere -5. Allo stesso modo, quando confrontiamo str2 con str1, l'output dovrebbe essere +5.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'Software Testing'; String str2 = 'Software Testing Help'; System.out.println(str1.compareTo(str2)); // Since str2 contains 5 characters more than the str1, output should be -5 System.out.println(str2.compareTo(str1)); // Since str2 contains 5 characters less than the str1, output should be +5 } }
Produzione:
Scenario 2: Considera le seguenti due stringhe. Li confronteremo e vedremo l'output.
Stringa str1 = '';
Stringa str2 = '';
assert () c ++
Quale sarà l'output di str1.compareTo (str2)?
Risposta: Poiché str2 contiene un carattere (spazio) in più rispetto a str1, l'output dovrebbe essere -1.
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = ''; String str2 = ' '; System.out.println(str1.compareTo(str2)); //Since str2 contains one character more than str1, it will give -1 System.out.println(str2.compareTo(str1)); //Since str1 contains one character less than str1, it will give 1 } }
Produzione:
Scenario 3: Considera le seguenti due stringhe. Li confronteremo e vedremo l'output.
Stringa str1 = 'SAKET';
String str2 = 'saket';
Quale sarà l'output di str1.compareTo (str2)?
Risposta: Qui le stringhe sono uguali ma str1 ha le maiuscole mentre str2 ha le minuscole. Questa era la limitazione del metodo Java compareTo (). L'output che otterremo sarà diverso da zero. Per superare questo problema, Java ha introdotto un'altra variante del metodo .compareTo () che è
.compareToIgnoreCase ()
package codes; import java.lang.String; public class CompareTo { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); //The ASCII representation of the lowercase and uppercase has a difference of 32 } }
Produzione:
Metodo Java String compareToIgnoreCase ()
Poiché abbiamo discusso il problema nella mancata corrispondenza tra maiuscole e minuscole (Scenario3), abbiamo già un'altra variante del metodo .compareTo () che ignorerà la mancata corrispondenza tra maiuscole e minuscole delle stringhe.
La sintassi di questo metodo è data come
int compareToIgnoreCase(String str)
Tutto il resto rimane lo stesso tranne il fatto che .compareToIgnoreCase () non prende in considerazione la mancata corrispondenza tra maiuscole e minuscole.
Un esempio di programmazione
Ecco un esempio del metodo Java compareTo (). In questo esempio, abbiamo illustrato la differenza negli output di Java compareTo () e compareToIgnoreCase (). Java compareTo () darà una differenza di -32 mentre compareToIgnoreCase () darà una differenza di 0.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'SAKET'; String str2 = 'saket'; System.out.println(str1.compareTo(str2)); System.out.println(str1.compareToIgnoreCase(str2)); } }
Produzione:
Spiegazione dell'esempio:
Nell'esempio sopra, abbiamo preso due stringhe che hanno lo stesso valore mantenendo una stringa in maiuscolo e un'altra in minuscolo. Ora, un metodo Java .compareTo () fornirà risultati basati sulla differenza ASCII nel valore di lettere minuscole e maiuscole poiché prenderà in considerazione il caso dei caratteri.
Ma Java .compareToIgnoreCase () non prende in considerazione il caso dei caratteri e darà un risultato pari a 0, il che significa che entrambe le stringhe sono uguali.
Domande frequenti
D # 1) Qual è la differenza tra ==, equals e .compareTo ()?
Risposta: Di seguito sono elencate le principali differenze tra ==, equals () e compareTo ().
!ERRORE! operatore imprevisto '=' | è uguale a() | confrontare con() |
---|---|---|
!ERRORE! operatore imprevisto '=' | equals () è un metodo. | compareTo () è un metodo. |
!ERRORE! operatore imprevisto '=' | Il metodo equals () esegue il confronto dei contenuti. | compareTo () esegue il confronto in base al valore ASCII. |
Il tipo restituito è booleano. | Il tipo restituito è booleano. | Il tipo restituito è Integer. |
Utilizza il riferimento della variabile String, quindi gli indirizzi di memoria dovrebbero essere gli stessi durante il confronto. | Non richiede che gli oggetti siano ordinati logicamente. | Richiede che gli oggetti siano ordinati logicamente. |
Ecco un esempio di programmazione che illustra la differenza.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = new String('Testing'); String str2 = 'Testing'; System.out.println(str1.compareTo(str2)); System.out.println(str1 ==str2); System.out.println(str1.equals(str2)); } }
Produzione:
D # 2) Il metodo Java compareTo () fa distinzione tra maiuscole e minuscole?
Risposta: Sì. Il metodo Java .compareTo () considera i caratteri tra maiuscole e minuscole e distingue tra maiuscole e minuscole.
Di seguito è riportata l'illustrazione.
package codes; public class CompareToIgnoreCase { public static void main(String() args) { String str1 = 'Software'; String str2 = 'SOFTWARE'; System.out.println(str1.compareTo(str2)); } }
Produzione:
quali sono i migliori downloader di musica
Q # 3) Come funziona compareTo () in Java?
Risposta: Il metodo Java compareTo () confronta effettivamente i valori ASCII dei caratteri di una stringa.
Diciamo che confronteremo una virgola e uno spazio utilizzando il metodo .compareTo (). Come sappiamo, un carattere spazio ha un valore ASCII 32 mentre una virgola ha un valore ASCII 44. La differenza tra il valore ASCII dello spazio e la virgola è 12.
Di seguito è riportato l'esempio di programmazione.
package codes; public class CompareTo { public static void main(String() args) { String str1 = ','; String str2 = ' '; System.out.println(str1.compareTo(str2)); } }
Produzione:
Q # 4) Come trovare la lunghezza di una stringa utilizzando il metodo Java .compareTo ()?
Risposta: Di seguito è riportato il programma per trovare la lunghezza di una stringa utilizzando il metodo Java .compareTo ().
In questo esempio, abbiamo preso una stringa di cui dobbiamo trovare la lunghezza e una stringa vuota. Quindi abbiamo confrontato la stringa con la stringa vuota. La differenza tra loro sarà la lunghezza della stringa.
package codes; public class CompareTo { public static void main(String() args) { String str1 = 'Tony Stark'; String str2 = ''; System.out.println(str1.compareTo(str2)); } }
Produzione:
D # 5) Cosa restituisce il metodo compareTo?
Risposta: Il tipo restituito dal metodo Java compareTo () è intero. Il valore intero può essere zero, intero positivo o intero negativo.
Conclusione
In questo tutorial, abbiamo compreso in dettaglio il metodo Java String compareTo (). La funzionalità di base, i dettagli sull'implementazione e l'uso, in particolare gli esempi di programmazione, sono stati forniti per una migliore comprensione del concetto relativo al metodo String compareTo ().
Leggi anche = >> Interfacce comparabili e di confronto Java
Usando questo metodo, puoi confrontare due stringhe e molti altri usi o aree di applicazione come trovare la lunghezza della stringa è possibile anche con l'aiuto del metodo compareTo () che è stato trattato nelle domande frequenti.
=> Visita qui per l'esclusiva serie di tutorial di formazione Java.
Lettura consigliata
- Tutorial Java String | Metodi Java String con esempi
- Metodo Java String Split () - Come dividere una stringa in Java
- Java String con String Buffer e String Builder Tutorial
- Funzioni stringa Python
- Java String Array - Tutorial con esempi di codice
- ListIterator Interface in Java con esempi
- Tutorial sull'interfaccia Java e sulla classe astratta con esempi
- Java OOP: Introduzione alla programmazione orientata agli oggetti in Java