La stringa è una sequenza di caratteri. In Java, gli oggetti String sono immutabili, il che significa che sono costanti e non possono essere modificati una volta creati.
scanner in java
Metodi per confrontare stringhe in Java
Di seguito sono riportati 5 modi per confrontarne due stringhe in Giava:
- Utilizzando la funzione definita dall'utente
- Utilizzando String.equals()
- Utilizzando String.equalsIgnoreCase()
- Utilizzando Objects.equals()
- Utilizzando String.compareTo()
1. Utilizzando la funzione definita dall'utente:
Definire una funzione per confrontare i valori con le seguenti condizioni:
- se (stringa1> stringa2) restituisce a valore positivo .
- se entrambe le stringhe sono uguali lessicograficamente cioè (string1 == string2) restituisce 0 .
- se (stringa1
valore negativo .
2. Utilizzando String.equals() :
In Java, il metodo string equals() confronta le due stringhe fornite in base ai dati/contenuto della stringa. Se tutti i contenuti di entrambe le stringhe sono uguali, restituisce true. Se qualche carattere non corrisponde, restituisce false.
Sintassi:
str1.equals(str2);>
Qui str1 e str2 sono entrambe le stringhe da confrontare.
Esempi:
Input 1: techcodeview.com Input 2: Practice Output: false Input 1: Geeks Input 2: Geeks Output: true Input 1: geeks Input 2: Geeks Output: false>
Programma:
Giava // Java program to Compare two strings // lexicographically public class GFG { public static void main(String args[]) { String string1 = new String('Geeksforgeeks'); String string2 = new String('Practice'); String string3 = new String('Geeks'); String string4 = new String('Geeks'); String string5 = new String('geeks'); // Comparing for String 1 != String 2 System.out.println('Comparing ' + string1 + ' and ' + string2 + ' : ' + string1.equals(string2)); // Comparing for String 3 = String 4 System.out.println('Comparing ' + string3 + ' and ' + string4 + ' : ' + string3.equals(string4)); // Comparing for String 4 != String 5 System.out.println('Comparing ' + string4 + ' and ' + string5 + ' : ' + string4.equals(string5)); // Comparing for String 1 != String 4 System.out.println('Comparing ' + string1 + ' and ' + string4 + ' : ' + string1.equals(string4)); } }> Produzione
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>
3. Utilizzo di String.equalsIgnoreCase() :
IL String.equalsIgnoreCase() Il metodo confronta due stringhe indipendentemente dal caso (inferiore o superiore) della stringa. Questo metodo restituisce true se l'argomento non è null e il contenuto di entrambe le stringhe è lo stesso ignorando maiuscole e minuscole, altrimenti false. Sintassi:
str2.equalsIgnoreCase(str1);>
Qui str1 e str2 sono entrambe le stringhe da confrontare.
Esempi:
Input 1: techcodeview.com Input 2: Practice Output: false Input 1: Geeks Input 2: Geeks Output: true Input 1: geeks Input 2: Geeks Output: true>
Programma:
Giava // Java program to Compare two strings // lexicographically public class GFG { public static void main(String args[]) { String string1 = new String('Geeksforgeeks'); String string2 = new String('Practice'); String string3 = new String('Geeks'); String string4 = new String('Geeks'); String string5 = new String('geeks'); // Comparing for String 1 != String 2 System.out.println( 'Comparing ' + string1 + ' and ' + string2 + ' : ' + string1.equalsIgnoreCase(string2)); // Comparing for String 3 = String 4 System.out.println( 'Comparing ' + string3 + ' and ' + string4 + ' : ' + string3.equalsIgnoreCase(string4)); // Comparing for String 4 = String 5 System.out.println( 'Comparing ' + string4 + ' and ' + string5 + ' : ' + string4.equalsIgnoreCase(string5)); // Comparing for String 1 != String 4 System.out.println( 'Comparing ' + string1 + ' and ' + string4 + ' : ' + string1.equalsIgnoreCase(string4)); } }> Produzione
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>
4. Utilizzo di Objects.equals() :
Oggetto.equals(Oggetto a, Oggetto b) Il metodo restituisce vero se gli argomenti sono uguali tra loro e falso altrimenti. Di conseguenza, se entrambi gli argomenti sono nulli, viene restituito true e se esattamente un argomento è nullo, viene restituito false. Altrimenti, l'uguaglianza viene determinata utilizzando il metodo equals() del primo argomento. Sintassi:
public static boolean equals(Object a, Object b)>
Qui a e b sono entrambi gli oggetti stringa che devono essere confrontati.
Esempi:
Input 1: techcodeview.com Input 2: Practice Output: false Input 1: Geeks Input 2: Geeks Output: true Input 1: null Input 2: null Output: true>
Programma:
Giava // Java program to Compare two strings // lexicographically import java.util.*; public class GFG { public static void main(String args[]) { String string1 = new String('Geeksforgeeks'); String string2 = new String('Geeks'); String string3 = new String('Geeks'); String string4 = null; String string5 = null; // Comparing for String 1 != String 2 System.out.println( 'Comparing ' + string1 + ' and ' + string2 + ' : ' + Objects.equals(string1, string2)); // Comparing for String 2 = String 3 System.out.println( 'Comparing ' + string2 + ' and ' + string3 + ' : ' + Objects.equals(string2, string3)); // Comparing for String 1 != String 4 System.out.println( 'Comparing ' + string1 + ' and ' + string4 + ' : ' + Objects.equals(string1, string4)); // Comparing for String 4 = String 5 System.out.println( 'Comparing ' + string4 + ' and ' + string5 + ' : ' + Objects.equals(string4, string5)); } }> Produzione
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>
5. Utilizzo di String.compareTo() per confrontare due stringhe
Sintassi della stringa compareTo()
int str1.compareTo(String str2)>
Lavorando: Confronta e restituisce i seguenti valori come segue:
- se (stringa1> stringa2) restituisce a valore positivo .
- se entrambe le stringhe sono uguali lessicograficamente cioè (string1 == string2) restituisce 0 .
- se (stringa1
valore negativo .
Di seguito è riportata l'implementazione del metodo sopra
Giava // Java program to Compare two strings // Using String.compareTo() import java.util.*; // Diver Class public class GFG { public static void check(String string1, String string2) { if (string1.compareTo(string2)!=0) { System.out.println(string1 + ' ' + string2 + ' : Not Equal'); } else { System.out.println(string1 + ' ' + string2 + ' : Equal'); } } // main function public static void main(String args[]) { String string1 = new String('Geeksforgeeks'); String string2 = new String('Geeks'); String string3 = new String('Geeks'); String string4 = ' '; String string5 = ' '; // Comparing for String 1 != String 2 check(string1, string2); // Comparing for String 2 = String 3 check(string2, string3); // Comparing for String 1 != String 4 check(string1, string4); // Comparing for String 4 = String 5 check(string4, string5); } }> Produzione
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>
Nota: La stringa NULL non può essere passata come argomento al metodo compareTo().
Per approfondire l'argomento fare riferimento al String.compareTo() articolo.
Perché non utilizzare == per il confronto di stringhe?
In generale, entrambi equivale() E == gli operatori in Java vengono utilizzati per confrontare oggetti per verificare l'uguaglianza, ma ecco alcune differenze tra i due:
- La differenza principale tra il metodo .equals() e l'operatore == è che uno è il metodo e l'altro è l'operatore.
- È possibile utilizzare gli operatori == per il confronto dei riferimenti (confronto indirizzi) e il metodo .equals() per confronto dei contenuti .
- Sia s1 che s2 si riferiscono a oggetti diversi.
- Quando si utilizza l'operatore == per il confronto s1 e s2, il risultato è falso poiché entrambi hanno indirizzi diversi in memoria.
- Usando uguale, il risultato è vero perché confronta solo i valori indicati in s1 e s2.
Per approfondire l'argomento fare riferimento al confronto di stringhe articolo.