==
)Wird verwendet, um zu vergleichen, ob zwei Zeichenfolgen gleich sind. Bei primitiven Typen wie int type und double type wird ein Vergleich mit ==
durchgeführt. Da der String-Typ jedoch ein Referenztyp ist, wird der Vergleich mit der equals-Methode durchgeführt.
public static void main(String[] args) {
//Initialisieren Sie die String-Typvariablen str1 und str2 mit derselben Zeichenfolge
String str1 = "hello";
String str2 = "hello";
if(str1 == str2)
System.out.println("1. Mal: str1=str2 (==Vergleichen mit) ");
else
System.out.println("1. Mal: str1 ≠ str2(==Vergleichen mit) ");
//Fügen Sie dieselbe Zeichenfolge hinzu
str1 += "!";
str2 += "!";
if(str1 == str2)
System.out.println("Zweites Mal: str1=str2 (==Vergleichen mit) ");
else
System.out.println("Zweites Mal: str1 ≠ str2(==Vergleichen mit) ");
if(str1.equals(str2))
System.out.println("3. Mal: str1=str2 (Vergleiche mit gleich) ");
else
System.out.println("Drittes Mal: str1 ≠ str2(Vergleiche mit gleich) ");
}
Ausführungsergebnis
1. Mal: str1=str2 (==Vergleichen mit)
Zweites Mal: str1 ≠ str2(==Vergleichen mit)
3. Mal: str1=str2 (Vergleiche mit gleich)
Dieser Code gibt im ersten Vergleich mit dem Operator ==
true zurück, im zweiten Vergleich nach dem Hinzufügen der Zeichenfolge jedoch false. Der dritte Vergleich mit der Methode equals gibt true zurück. Auf diese Weise wird bei Verwendung des Operators ==
false zurückgegeben, wenn sich die Objekte unterscheiden, auch wenn die referenzierte Zeichenfolge identisch ist. Daher wird die Methode equals zum Vergleichen der Zeichenfolgen verwendet.
Verwenden Sie equalsIgnoreCase, wenn Sie als dieselbe Zeichenfolge vergleichen möchten, ohne zwischen Groß- und Kleinschreibung zu unterscheiden.
public static void main(String[] args) {
String str1 = "hello";
String str2 = "HELLO";
if(str1.equalsIgnoreCase(str2))
System.out.println("str1=str2 ([Vergleiche mit equalsIgnoreCase) ");
else
System.out.println("str1≠str2 ([Vergleiche mit equalsIgnoreCase) ");
if(str1.equals(str2))
System.out.println("str1=str2 (Vergleiche mit gleich) ");
else
System.out.println("str1≠str2 (Vergleiche mit gleich) ");
}
Ausführungsergebnis
str1=str2 ([Vergleiche mit equalsIgnoreCase)
str1≠str2 (Vergleiche mit gleich)
Verwenden Sie die equals-Methode der Objects-Klasse, um einen sicheren Vergleich durchzuführen, ohne eine nullPointerException-Ausnahme auszulösen. In der equals-Methode der String-Klasse tritt eine nullPointerException-Ausnahme auf, wenn das Objekt, das die Methode aufruft, null ist.
Zuerst müssen Sie java.util.Objects
importieren, um die equals-Methode der Objects-Klasse zu verwenden.
import java.util.Objects;
public class Main {
public static void main(String[] args) {
String str1 = null;
String str2 = "abc";
String str3 = null;
System.out.println(Objects.equals(str1, str2));
System.out.println(Objects.equals(str1, str3));
}
}
Ausführungsergebnis
false
true
Wenn Sie Nullverben auf diese Weise vergleichen, kann true zurückgegeben werden.
[Schnell lernen Java] Unterschied zwischen "==" und "gleich" (erklärt, wie man leugnet) [Einführung in Java] Zusammenfassung des Vergleichs mit der Equals-Methode
Recommended Posts