logo

Confronta due stringhe in Java

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:

  1. Utilizzando la funzione definita dall'utente
  2. Utilizzando String.equals()
  3. Utilizzando String.equalsIgnoreCase()
  4. Utilizzando Objects.equals()
  5. Utilizzando String.compareTo()

1. Utilizzando la funzione definita dall'utente:

Definire una funzione per confrontare i valori con le seguenti condizioni:



  1. se (stringa1> stringa2) restituisce a valore positivo .
  2. se entrambe le stringhe sono uguali lessicograficamente cioè (string1 == string2) restituisce 0 .
  3. 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:

  1. se (stringa1> stringa2) restituisce a valore positivo .
  2. se entrambe le stringhe sono uguali lessicograficamente cioè (string1 == string2) restituisce 0 .
  3. 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:

  1. La differenza principale tra il metodo .equals() e l'operatore == è che uno è il metodo e l'altro è l'operatore.
  2. È 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.