logo

Compareu dues cadenes a Java

La cadena és una seqüència de caràcters. A Java, els objectes de String són immutables, el que significa que són constants i no es poden canviar un cop creats.

llançar llançaments en java

Mètodes per comparar cadenes a Java

A continuació es mostren 5 maneres de comparar-ne dues Cordes en Java:

  1. Utilitzant la funció definida per l'usuari
  2. Utilitzant String.equals()
  3. Utilitzant String.equalsIgnoreCase()
  4. Utilitzant Objects.equals()
  5. Utilitzant String.compareTo()

1. Ús de la funció definida per l'usuari:

Definiu una funció per comparar valors amb les condicions següents:



  1. si (cadena1> cadena2) retorna a valor positiu .
  2. si les dues cadenes són iguals lexicogràficament, és a dir (cadena1 == cadena2) retorna 0 .
  3. si (cadena 1 valor negatiu .

2. Utilitzant String.equals():

A Java, el mètode string equals() compara les dues cadenes donades en funció de les dades/contingut de la cadena. Si tots els continguts de les dues cadenes són iguals, retorna cert. Si algun caràcter no coincideix, retorna fals.

Sintaxi:

str1.equals(str2);>

Aquí str1 i str2 són les cadenes que s'han de comparar.

Exemples:

  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>

Programa:

Java
// 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));  } }>

Sortida
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : false Comparing Geeksforgeeks and Geeks : false>

3. Utilitzant String.equalsIgnoreCase():

El String.equalsIgnoreCase() El mètode compara dues cadenes independentment del cas (inferior o superior) de la cadena. Aquest mètode retorna true si l'argument no és nul i el contingut de les dues cadenes és el mateix ignorant majúscules i minúscules, en cas contrari, fals. Sintaxi:

str2.equalsIgnoreCase(str1);>

Aquí str1 i str2 són les cadenes que s'han de comparar.

Exemples:

  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>

Programa:

Java
// 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));  } }>

Sortida
Comparing Geeksforgeeks and Practice : false Comparing Geeks and Geeks : true Comparing Geeks and geeks : true Comparing Geeksforgeeks and Geeks : false>

4. Utilitzant Objects.equals():

Object.equals (Objecte a, Objecte b) El mètode retorna true si els arguments són iguals entre si i fals en cas contrari. En conseqüència, si tots dos arguments són nuls, es retorna true i si exactament un argument és nul, es retorna false. En cas contrari, la igualtat es determina utilitzant el mètode equals() del primer argument. Sintaxi:

public static boolean equals(Object a, Object b)>

Aquí a i b són els objectes de cadena que s'han de comparar.

Exemples:

  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>

Programa:

Java
// 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));  } }>

Sortida
Comparing Geeksforgeeks and Geeks : false Comparing Geeks and Geeks : true Comparing Geeksforgeeks and null : false Comparing null and null : true>

5. Utilitzant String.compareTo() per comparar dues cadenes

Sintaxi de String compareTo()

int str1.compareTo(String str2)>

Treball: Compara i retorna els valors següents de la manera següent:

  1. si (cadena1> cadena2) retorna a valor positiu .
  2. si les dues cadenes són iguals lexicogràficament, és a dir (cadena1 == cadena2) retorna 0 .
  3. si (cadena 1 valor negatiu .

A continuació es mostra la implementació del mètode anterior

Java
// 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);  } }>

Sortida
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Nota: La cadena NULL no es pot passar com a argument al mètode compareTo().

Per saber més sobre el tema consulteu el String.compareTo() article.

Per què no utilitzar == per a la comparació de cadenes?

En general, tots dos és igual() i == Els operadors de Java s'utilitzen per comparar objectes per comprovar la igualtat, però aquí hi ha algunes de les diferències entre els dos:

  1. La diferència principal entre el mètode .equals() i l'operador == és que un és el mètode i l'altre és l'operador.
  2. Es poden utilitzar operadors == per a la comparació de referència (comparació d'adreces) i el mètode .equals() per comparació de continguts .
    • Tant s1 com s2 es refereixen a diferents objectes.
    • Quan s'utilitza l'operador == per a la comparació s1 i s2, el resultat és fals ja que tots dos tenen adreces diferents a la memòria.
    • Utilitzant iguals, el resultat és cert perquè només compara els valors donats a s1 i s2.

Per saber més sobre el tema consulteu el comparació de cordes article.