logo

Vergleichen Sie zwei Strings in Java

Die Zeichenfolge ist eine Folge von Zeichen. In Java sind String-Objekte unveränderlich, was bedeutet, dass sie konstant sind und nach ihrer Erstellung nicht mehr geändert werden können.

Tiger-Löwe-Unterschied

Methoden zum Vergleichen von Zeichenfolgen in Java

Im Folgenden finden Sie 5 Möglichkeiten, zwei zu vergleichen Saiten in Java:



  1. Verwendung einer benutzerdefinierten Funktion
  2. Verwenden von String.equals()
  3. Verwenden von String.equalsIgnoreCase()
  4. Verwenden von Objects.equals()
  5. Verwenden von String.compareTo()

1. Benutzerdefinierte Funktion verwenden:

Definieren Sie eine Funktion zum Vergleichen von Werten mit den folgenden Bedingungen:

  1. if (string1> string2) gibt es a zurück positiver Wert .
  2. Wenn beide Zeichenfolgen lexikografisch gleich sind, d. h. (Zeichenfolge1 == Zeichenfolge2), wird zurückgegeben 0 .
  3. if (string1 negativer Wert .

2. Verwenden von String.equals() :

In Java vergleicht die Methode string equal() die beiden angegebenen Strings basierend auf den Daten/Inhalten des Strings. Wenn alle Inhalte beider Zeichenfolgen gleich sind, wird „true“ zurückgegeben. Wenn ein Zeichen nicht übereinstimmt, wird „false“ zurückgegeben.

Syntax:



str1.equals(str2);>

Hier sind sowohl str1 als auch str2 die zu vergleichenden Zeichenfolgen.

Beispiele:

  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>

Programm:



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

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

3. Verwenden von String.equalsIgnoreCase() :

Der String.equalsIgnoreCase() Die Methode vergleicht zwei Zeichenfolgen unabhängig von der Groß-/Kleinschreibung der Zeichenfolge. Diese Methode gibt „true“ zurück, wenn das Argument nicht null ist und die Inhalte beider Strings gleich sind, wobei die Groß-/Kleinschreibung ignoriert wird, andernfalls „false“. Syntax:

str2.equalsIgnoreCase(str1);>

Hier sind sowohl str1 als auch str2 die Zeichenfolgen, die verglichen werden sollen.

Beispiele:

  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>

Programm:

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

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

4. Verwenden von Objects.equals() :

Object.equals(Objekt a, Objekt b) Die Methode gibt true zurück, wenn die Argumente einander gleich sind, andernfalls false. Wenn also beide Argumente null sind, wird „true“ zurückgegeben, und wenn genau ein Argument null ist, wird „false“ zurückgegeben. Andernfalls wird die Gleichheit mithilfe der Methode equal() des ersten Arguments bestimmt. Syntax:

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

Hier sind a und b beide die zu vergleichenden String-Objekte.

Beispiele:

  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>

Programm:

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

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

5. Verwenden von String.compareTo() zum Vergleichen zweier Strings

Syntax von String CompareTo()

int str1.compareTo(String str2)>

Arbeiten: Es vergleicht die folgenden Werte und gibt sie wie folgt zurück:

  1. if (string1> string2) gibt es a zurück positiver Wert .
  2. Wenn beide Zeichenfolgen lexikografisch gleich sind, d. h. (Zeichenfolge1 == Zeichenfolge2), wird zurückgegeben 0 .
  3. if (string1 negativer Wert .

Nachfolgend finden Sie die Implementierung der obigen Methode

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

Ausgabe
Geeksforgeeks Geeks : Not Equal Geeks Geeks : Equal Geeksforgeeks : Not Equal : Equal>

Notiz: Eine NULL-Zeichenfolge kann nicht als Argument an die Methode „compareTo()“ übergeben werden.

Weitere Informationen zum Thema finden Sie unter String.compareTo() Artikel.

Warum nicht == für den Vergleich von Strings verwenden?

Im Allgemeinen beides gleich() Und == Operatoren in Java werden zum Vergleichen von Objekten verwendet, um die Gleichheit zu überprüfen. Hier sind jedoch einige Unterschiede zwischen den beiden:

  1. Der Hauptunterschied zwischen der .equals()-Methode und dem ==-Operator besteht darin, dass es sich bei einer um die Methode und bei der anderen um den Operator handelt.
  2. Für den Referenzvergleich können ==-Operatoren verwendet werden (Adressvergleich) und die .equals()-Methode für Inhaltsvergleich .
    • Sowohl s1 als auch s2 beziehen sich auf unterschiedliche Objekte.
    • Wenn man den Operator == für den Vergleich von s1 und s2 verwendet, ist das Ergebnis falsch, da beide unterschiedliche Adressen im Speicher haben.
    • Bei Verwendung von „equals“ ist das Ergebnis wahr, da nur die in s1 und s2 angegebenen Werte verglichen werden.

Weitere Informationen zum Thema finden Sie unter Vergleich von Saiten Artikel.