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:
- Verwendung einer benutzerdefinierten Funktion
- Verwenden von String.equals()
- Verwenden von String.equalsIgnoreCase()
- Verwenden von Objects.equals()
- Verwenden von String.compareTo()
1. Benutzerdefinierte Funktion verwenden:
Definieren Sie eine Funktion zum Vergleichen von Werten mit den folgenden Bedingungen:
- if (string1> string2) gibt es a zurück positiver Wert .
- Wenn beide Zeichenfolgen lexikografisch gleich sind, d. h. (Zeichenfolge1 == Zeichenfolge2), wird zurückgegeben 0 .
- 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:
- if (string1> string2) gibt es a zurück positiver Wert .
- Wenn beide Zeichenfolgen lexikografisch gleich sind, d. h. (Zeichenfolge1 == Zeichenfolge2), wird zurückgegeben 0 .
- 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:
- 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.
- 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.