[Java] Résumez comment comparer avec la méthode equals

Journal d'étude de programmation

11 novembre 2020 Dans l'article d'hier, j'ai traité du contenu [Java] == et de la différence entre égaux. Aujourd'hui, je vais résumer comment comparer sans tenir compte de la casse avec la méthode equals et comment comparer les valeurs nulles avec la méthode equals de la classe Objects.

Quelle est la méthode equals (différence de ==)

Utilisé pour comparer si deux chaînes sont égales. Dans le cas des types primitifs tels que le type int et le type double, la comparaison est effectuée avec ==, mais comme le type String est un type référence, la comparaison est effectuée à l'aide de la méthode equals.

public static void main(String[] args) {
    //Initialisez les variables de type String str1 et str2 avec la même chaîne
    String str1 = "hello";
    String str2 = "hello";

    if(str1 == str2)
        System.out.println("1ère fois: str1=str2 (==Comparer avec) ");
    else
        System.out.println("1ère fois: str1 ≠ str2(==Comparer avec) ");

    //Ajouter la même chaîne
    str1 += "!";
    str2 += "!";

    if(str1 == str2)
        System.out.println("Deuxième fois: str1=str2 (==Comparer avec) ");
    else
        System.out.println("Deuxième fois: str1 ≠ str2(==Comparer avec) ");

    if(str1.equals(str2))
        System.out.println("3ème fois: str1=str2 (Comparer avec des égaux) ");
    else
        System.out.println("Troisième fois: str1 ≠ str2(Comparer avec des égaux) ");
}

Résultat d'exécution


1ère fois: str1=str2 (==Comparer avec) 
Deuxième fois: str1 ≠ str2(==Comparer avec) 
3ème fois: str1=str2 (Comparer avec des égaux) 

Ce code renvoie true dans la première comparaison à l'aide de l'opérateur ==, mais renvoie false dans la deuxième comparaison après avoir ajouté la chaîne. La troisième comparaison utilisant la méthode equals renvoie true. De cette manière, lorsque l'opérateur == est utilisé, false est renvoyé si les objets sont différents même si la chaîne de caractères référencée est la même, donc la méthode equals est utilisée pour comparer les chaînes de caractères.

Comment faire des comparaisons insensibles à la casse

Utilisez equalsIgnoreCase si vous souhaitez comparer avec la même chaîne sans faire la distinction entre les majuscules et les minuscules.

public static void main(String[] args) {
    String str1 = "hello";
    String str2 = "HELLO";

    if(str1.equalsIgnoreCase(str2))
        System.out.println("str1=str2 ([Comparer avec equalsIgnoreCase) ");
    else
        System.out.println("str1≠str2 ([Comparer avec equalsIgnoreCase) ");

    if(str1.equals(str2))
        System.out.println("str1=str2 (Comparer avec des égaux) ");
    else
        System.out.println("str1≠str2 (Comparer avec des égaux) ");
}

Résultat d'exécution


str1=str2 ([Comparer avec equalsIgnoreCase) 
str1≠str2 (Comparer avec des égaux) 

Comment comparer en toute sécurité les valeurs nulles

Utilisez la méthode equals de la classe Objects pour effectuer une comparaison sûre sans déclencher une exception nullPointerException. Dans la méthode equals de la classe String, une exception nullPointerException se produit lorsque l'objet qui appelle la méthode est null. Tout d'abord, vous devez importer java.util.Objects pour utiliser la méthode equals de la classe Objects.

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

Résultat d'exécution


false
true

Lorsque vous comparez les verbes nuls de cette manière, true peut être renvoyé.

Références

[Apprentissage rapide Java] Différence entre "==" et "égal" (explique comment refuser) [Introduction à Java] Résumé de la comparaison avec la méthode equals

Recommended Posts

[Java] Résumez comment comparer avec la méthode equals
Comment éviter les exceptions avec la méthode Equals de Java
[Java] Comment utiliser la méthode de jointure
Comment compiler Java avec VsCode & Ant
Comment utiliser la méthode de soumission (Java Silver)
[Java] Comment utiliser la méthode toString ()
[Java] Comment tester s'il est nul dans JUnit
Comment utiliser le framework Java avec AWS Lambda! ??
Comment utiliser l'API Java avec des expressions lambda
Comment utiliser la méthode replace () (Java Silver)
Comment appeler des fonctions en bloc avec la réflexion Java
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Java pour jouer avec Function
Java - Comment créer JTable
[Java] Comment omettre l'injection de constructeur de ressort avec Lombok
Comment déployer Java sur AWS Lambda avec Serverless Framework
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java
[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
[Java] Comment afficher les Wingdings
[Java Silver] À propos de la méthode equals
Comment numéroter (nombre) avec html.erb
Comment utiliser Java Map
Comment mettre à jour avec activerecord-import
Comment définir des constantes Java
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Comment créer un environnement de développement Java avec VS Code
Comment utiliser les variables Java
Comment convertir la base Java
[Java] Comment implémenter le multithreading
Comparez Java 8 en option avec Swift
Comment initialiser un tableau Java
Comment créer une méthode
[Java] Comment rompre une ligne avec StringBuilder
(Java) Comment implémenter equals () pour une classe avec des éléments de valeur ajoutés par héritage
Comment obtenir le nom d'une classe / méthode exécutée en Java
Comment inverser la compilation du fichier apk en code source Java avec MAC
Comment utiliser le modèle entraîné Tensorflow 2.0 avec Kotlin / Java
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
Assurez-vous de comparer le résultat Java compareTo avec 0
A étudié comment appeler des services avec Watson SDK pour Java
Comment étudier Java Silver SE 8
Comment utiliser HttpClient de Java (Get)
Java pour apprendre avec les ramen [Partie 1]
Comment utiliser la méthode form_with
Comment démarrer avec Slim
Étudier Java # 6 (Comment écrire des blocs)
[Java] Points à noter avec Arrays.asList ()