Verwendung von equalsIgnoreCase() für die Groß-/Kleinschreibung-unabhängige Vergleich
In diesem letzten Schritt werden wir uns mit der equalsIgnoreCase()
-Methode befassen, die dazu dient, Strings ohne Berücksichtigung der Groß- und Kleinschreibung der Zeichen zu vergleichen. Dies ist sehr nützlich, wenn Sie prüfen möchten, ob zwei Strings gleich sind, unabhängig davon, ob die Buchstaben groß oder klein geschrieben sind.
Die equals()
-Methode, die wir in den vorherigen Schritten verwendet haben, führt einen groß-/kleinschreibungssensitiven Vergleich durch. Das bedeutet, dass "hello" nicht gleich "Hello" ist, wenn Sie equals()
verwenden. Die equalsIgnoreCase()
-Methode ignoriert die Groß- und Kleinschreibung, sodass "hello" und "Hello" als gleich betrachtet werden.
Ändern wir unser Programm ein letztes Mal, um equalsIgnoreCase()
zu demonstrieren.
-
Öffnen Sie die Datei StringComparison.java
im WebIDE-Editor.
-
Fügen Sie einige neue String-Variablen mit unterschiedlicher Groß- und Kleinschreibung hinzu und verwenden Sie equalsIgnoreCase()
, um sie zu vergleichen:
public class StringComparison {
public static void main(String[] args) {
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
String str4 = null;
String str5 = "Hello"; // Different casing
String str6 = "HELLO"; // All uppercase
System.out.println("Comparing str1 and str2 using equals(): " + str1.equals(str2));
System.out.println("Comparing str1 and str3 using equals(): " + str1.equals(str3));
System.out.println("Comparing str1 and str2 using ==: " + (str1 == str2));
System.out.println("Comparing str1 and str3 using ==: " + (str1 == str3));
// Safe comparison with null
System.out.println("Comparing str1 and str4 safely: " + (str1 != null && str1.equals(str4)));
System.out.println("Comparing str4 and str1 safely: " + (str4 != null && str4.equals(str1)));
System.out.println("Comparing str4 and null safely: " + (str4 == null));
System.out.println("\n--- Case-Insensitive Comparisons ---");
System.out.println("Comparing str1 and str5 using equals(): " + str1.equals(str5));
System.out.println("Comparing str1 and str5 using equalsIgnoreCase(): " + str1.equalsIgnoreCase(str5));
System.out.println("Comparing str1 and str6 using equalsIgnoreCase(): " + str1.equalsIgnoreCase(str6));
System.out.println("Comparing str5 and str6 using equalsIgnoreCase(): " + str5.equalsIgnoreCase(str6));
// equalsIgnoreCase() also handles null safely if called on a non-null string
System.out.println("Comparing str1 and str4 using equalsIgnoreCase(): " + str1.equalsIgnoreCase(str4));
// System.out.println("Comparing str4 and str1 using equalsIgnoreCase(): " + str4.equalsIgnoreCase(str1)); // This would still cause a NullPointerException
}
}
Im aktualisierten Code:
- Wir haben
str5
und str6
mit unterschiedlicher Groß- und Kleinschreibung hinzugefügt.
- Wir haben neue Ausgabebefehle hinzugefügt, um den Unterschied zwischen
equals()
und equalsIgnoreCase()
zu demonstrieren.
- Wir zeigen auch, dass das Aufrufen von
equalsIgnoreCase()
auf einem nicht-null
-String mit einem null
-Argument keinen Fehler verursacht, ähnlich wie bei equals()
. Allerdings führt das Aufrufen von equalsIgnoreCase()
auf einer null
-String-Variablen immer noch zu einer NullPointerException
.
-
Speichern Sie die Datei (Strg+S oder Cmd+S).
-
Kompilieren Sie das Programm im Terminal:
javac StringComparison.java
-
Führen Sie das kompilierte Programm aus:
java StringComparison
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Comparing str1 and str2 using equals(): true
Comparing str1 and str3 using equals(): true
Comparing str1 and str2 using ==: true
Comparing str1 and str3 using ==: false
Comparing str1 and str4 safely: false
Comparing str4 and str1 safely: false
Comparing str4 and null safely: true
--- Case-Insensitive Comparisons ---
Comparing str1 and str5 using equals(): false
Comparing str1 and str5 using equalsIgnoreCase(): true
Comparing str1 and str6 using equalsIgnoreCase(): true
Comparing str5 and str6 using equalsIgnoreCase(): true
Comparing str1 and str4 using equalsIgnoreCase(): false
Die Ausgabe zeigt deutlich, dass equalsIgnoreCase()
true
zurückgibt, wenn Strings mit denselben Zeichen, aber unterschiedlicher Groß- und Kleinschreibung verglichen werden, während equals()
false
zurückgibt.
Sie haben nun gelernt, wie man Strings in Java mit equals()
für einen groß-/kleinschreibungssensitiven Vergleich vergleicht, wie man null
-Strings sicher behandelt und wie man equalsIgnoreCase()
für einen groß-/kleinschreibung-unabhängigen Vergleich verwendet. Dies sind essentielle Fähigkeiten für die Arbeit mit Strings in Java.