Maison >Java >javaDidacticiel >Comparaison de chaînes Java : `==` vs `.equals()` – Quand utiliser laquelle ?

Comparaison de chaînes Java : `==` vs `.equals()` – Quand utiliser laquelle ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-06 14:14:12345parcourir

Java String Comparison:  `==` vs. `.equals()` – When to Use Which?

Comparaison des références d'objets et égalité des valeurs en Java

En Java, déterminer l'égalité des objets peut prêter à confusion lors de la comparaison de chaînes à l'aide de l'opérateur == . Examinons ce comportement apparemment ambigu.

Considérons le scénario suivant :

// Define a String array
String[] parts = {"231", "CA-California", "Sacramento-155328", "aleee", "Customer Service Clerk", "Alegra Keith.doc.txt"};

// Perform comparison
if ("231" == parts[0]) {
    // This comparison will evaluate to false
}

Étonnamment, la comparaison renvoie faux. En effet, l'opérateur == en Java vérifie l'égalité des références d'objet, et non l'égalité des valeurs. Contrairement à de nombreux autres langages, les chaînes Java sont des objets. Lorsque vous comparez deux chaînes à l'aide de ==, il compare les adresses mémoire où résident ces objets, et non les valeurs réelles des chaînes.

Pour comparer les valeurs réelles des chaînes, vous devez utiliser la méthode String.equals :

if ("231".equals(parts[0])) {
    // This comparison will evaluate to true
}

Cette méthode vérifie le contenu des chaînes, pas leurs références d'objet.

N'oubliez pas que pour tous les objets en Java, l'opérateur == vérifie référence l'égalité, tandis que la méthode equals compare les valeurs réelles des objets. Il est important d'utiliser égal lors de la vérification de l'égalité des objets, car == peut conduire à des conclusions incorrectes lors de la comparaison des références d'objets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn