10 novembre 2020
Un bref mémorandum sur la façon d'utiliser la méthode equals pour comparer des chaînes et ==
.
==
et epuals
J'entrerai immédiatement dans le sujet principal. Utilisez l'opérateur ==
pour comparer si deux valeurs sont égales dans un type primitif tel que int ou char. Pour les types de référence tels que le type String, comparez avec la méthode equals.
Lorsque vous comparez avec ==
dans le cas d'un type de référence tel que le type String, comparez si la destination de référence est la même </ b>, et ne comparez pas si la valeur de destination de référence est la même.
Exécutons-le réellement avec l'exemple de code.
Exemple de code
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("str1=str2 (==Comparer avec) ");
else
System.out.println("str1≠str2 (==Comparer avec) ");
//Ajouter la même chaîne
str1 += "!";
str2 += "!";
if(str1 == str2)
System.out.println("str1=str2 (==Comparer avec) ");
else
System.out.println("str1≠str2 (==Comparer avec) ");
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)
str1≠str2 (==Comparer avec)
str1=str2 (Comparer avec des égaux)
Lorsque str1 et str2 des variables de type String sont initialisés avec la même chaîne de caractères et que la même chaîne de caractères est ajoutée, «false» est renvoyé par rapport à «==», et «true» est renvoyé par rapport à la méthode equals. Je reviens. Le type String est traité comme un type pseudo primitif au moment de la déclaration et de l'initialisation, mais il est utilisé comme type de référence lorsqu'une chaîne de caractères est ajoutée. Par conséquent, même si les valeurs sont identiques, la destination de référence est différente, donc la comparaison avec ==
renvoie false.
Comparaison du type de base et comparaison du type de référence [Apprentissage rapide Java] Différence entre "==" et "égal" (explique comment refuser)
Recommended Posts