Java/Android: String Vergleich s1==s2 geht nicht
Frage von Gast | Letztes Update am 18.04.2022 | Erstellt am 16.09.2013
Ich versuche mit dem Operator "==" in Java für Android zwei Strings/Zeichenketten miteinander zu vergleichen. Mein Code ist folgender:
String s1 = new String("abc"); String s2 = new String("abc"); if (s1 == s2) { // gleich?! } else { // nicht gleich?! }
Aus welchen Gründen auch immer liefert mir die Bedingung unabhängig davon, ob s1 und s2 gleich sind oder nicht, immer das Ergebnis "false".
Was mache ich hier falsch? In allen anderen Programmiersprachen, die ich kenne, funktioniert das doch genauso.
Ähnliche Themen
Android Splash Screen Tutorial
Tutorial | 0 Kommentare
Android Table Layout mit gleich breiten Spalten
Tutorial | 0 Kommentare
Java: Größer/Kleiner-Vergleich von Strings - The operator > is undefined for the argument type(s) java.lang.String
Frage | 1 Antwort
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
Java: String Vergleich - Equals ohne Beachtung der Groß- und Kleinschreibung (case insensitive equals)
Info | 0 Kommentare
Android SDK Manager: Problem beim Installieren "File not Found (Zugriff verweigert) Done. Nothing was installed"
Frage | 1 Antwort
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
In Java/Android ist ein String ein Objekt. Benutzen wir den Operator "==", wird geprüft, ob die beiden Objekte identisch sind und nicht ob deren Inhalt identisch ist. Da in deinem Beispiel die Objekte "s1" und "s2" nicht identisch sind, gibt die if-Bedingung daher stets "false" zurück.
Um den Inhalt zweier Strings zu vergleichen, kannst du die Methode .equals(Object obj) verwenden:
Im Beispiel habe ich noch zusätzlich den String s3 deklariert und diesen auf s1 gesetzt. In diesem Fall sind tatsächlich die Objekte s1 und s3 identisch und auch die Bedingung mit "==" würde in diesem Fall "true" liefern.
Letztes Update am 18.04.2022 | Erstellt am 16.09.2013