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.
==
)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.
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)
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é.
[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