Heim >Java >javaLernprogramm >Java-String-Vergleich: „==' vs. „.equals()' – wann welche verwenden?

Java-String-Vergleich: „==' vs. „.equals()' – wann welche verwenden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-06 14:14:12345Durchsuche

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

Objektreferenzvergleich vs. Wertgleichheit in Java

In Java kann die Bestimmung der Objektgleichheit verwirrend sein, wenn Zeichenfolgen mit dem ==-Operator verglichen werden . Schauen wir uns dieses scheinbar mehrdeutige Verhalten genauer an.

Stellen Sie sich das folgende Szenario vor:

// 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
}

Überraschenderweise gibt der Vergleich „falsch“ zurück. Dies liegt daran, dass der ==-Operator in Java die Gleichheit der Objektreferenzen prüft, nicht die Gleichheit der Werte. Anders als in vielen anderen Sprachen sind Java-Strings Objekte. Wenn Sie zwei Zeichenfolgen mit == vergleichen, werden die Speicheradressen verglichen, in denen sich diese Objekte befinden, nicht die tatsächlichen Zeichenfolgenwerte.

Um die tatsächlichen Werte von Zeichenfolgen zu vergleichen, sollten Sie die Methode String.equals verwenden:

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

Diese Methode überprüft den Inhalt der Zeichenfolgen, nicht ihre Objektreferenzen.

Denken Sie daran, dass für alle Objekte in Java der Operator == prüft Referenzgleichheit, während die Methode „equals“ die tatsächlichen Objektwerte vergleicht. Es ist wichtig, „equals“ zu verwenden, wenn Sie die Gleichheit von Objekten prüfen, da == beim Vergleich von Objektreferenzen zu falschen Schlussfolgerungen führen kann.

Das obige ist der detaillierte Inhalt vonJava-String-Vergleich: „==' vs. „.equals()' – wann welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn