[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können

Programmierstudientagebuch

  1. November 2020 Im gestrigen Artikel habe ich mich mit dem Inhalt [[Java] == und dem Unterschied zwischen Gleichen] befasst (https://qiita.com/mzmz__02/items/343cfa4a07ce868755f2). Heute werde ich zusammenfassen, wie man Groß- und Kleinschreibung nicht mit der Equals-Methode vergleicht und wie man Nullen mit der Equals-Methode der Objects-Klasse vergleicht.

Was ist die Gleichheitsmethode (Unterschied zu ==)

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.

So machen Sie Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung

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) 

So vergleichen Sie Nullen sicher

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.

Verweise

[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

[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
So vermeiden Sie Ausnahmen mit der Java-Methode equals
[Java] Verwendung der Join-Methode
So kompilieren Sie Java mit VsCode & Ant
Verwendung der Submit-Methode (Java Silver)
[Java] Verwendung der toString () -Methode
[Java] So testen Sie, ob es in JUnit null ist
Verwendung des Java-Frameworks mit AWS Lambda! ??
Verwendung der Java-API mit Lambda-Ausdrücken
Verwendung der replace () -Methode (Java Silver)
Aufrufen von Funktionen in großen Mengen mit Java Reflection
So senken Sie die Java-Version
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java zum Spielen mit Function
Java - So erstellen Sie JTable
[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
[Java] Verschlüsselung mit AES-Verschlüsselung mit Standardbibliothek
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
[Java Silver] Über gleich Methode
Wie man mit html.erb nummeriert (nummeriert)
Verwendung von Java Map
So aktualisieren Sie mit activerecord-import
So legen Sie Java-Konstanten fest
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Verwendung von Java-Variablen
So konvertieren Sie Java Base
[Java] So implementieren Sie Multithreading
Vergleichen Sie Java 8 Optional mit Swift
So initialisieren Sie ein Java-Array
So erstellen Sie eine Methode
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
(Java) Implementieren von equals () für eine Klasse mit durch Vererbung hinzugefügten Wertelementen
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
So kehren Sie die Kompilierung der Apk-Datei in Java-Quellcode mit MAC um
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
So behandeln Sie Ausnahmen mit Java 8 Stream oder Optional kühl
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Untersucht, wie Dienste mit Watson SDK für Java aufgerufen werden
So lernen Sie Java Silver SE 8
Verwendung von HttpClient (Get) von Java
Java mit Ramen lernen [Teil 1]
Verwendung der Methode form_with
Wie fange ich mit schlank an?
Java # 6 studieren (Wie man Blöcke schreibt)
[Java] Mit Arrays.asList () zu beachtende Punkte