Java: Wie vergleiche ich Strings richtig?
Frage von Gast | 07.07.2016 um 11:22
Ich programmiere noch nicht sehr lange in Java und bekomme immer wieder Probleme mit einem simplen String-Vergleich.
Aus anderen Programmiersprachen bin ich es gewohnt Strings einfach mit == zu vergleichen. Das Ergebnis ist true wenn die Strings gleich sind, ansonsten false.
In Java habe ich aber schon häufiger ein merkwürdiges Verhalten mit diesem Vergleich beobachten können. Manchmal funktioniert es, manchmal nicht. Muss man da noch etwas beachten? Wie vergleiche ich Java-Strings richtig?
Ähnliche Themen
Java: Größer/Kleiner-Vergleich von Strings - The operator > is undefined for the argument type(s) java.lang.String
Frage | 1 Antwort
Java: String Vergleich - Equals ohne Beachtung der Groß- und Kleinschreibung (case insensitive equals)
Info | 0 Kommentare
Android Programmierung: Daten per HTTP POST Request senden
Tutorial | 0 Kommentare
Java: Split mit Punkt str.split(".") funktioniert nicht
Frage | 1 Antwort
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
PHP: Zeit und Performance messen
Tutorial | 0 Kommentare
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.
Ja, du musst etwas beachten. Und zwar den Unterschied zwischen einem Vergleich mit == und einem Vergleich mit .equals().
Wenn du in deinem Fall nur an einem Vergleich des Inhalts eines Strings interessiert bist, müsstest du also .equals() verwenden.
Deine Beobachtung, dass es manchmal funktioniert und manchmal nicht wird daran liegen, dass du tatsächlich auch manchmal Strings verglichen hast, die die gleiche Referenz haben. War der String zwar gleich, die Referenz aber nicht, kannst du entsprechend false auf deinen == Vergleich zurück.
Hier ist ein kleines Beispiel:
Mit .equals() testest du übrigens immer auch auf eine gleiche Groß- und Kleinschreibung. Benutze .equalsIgnoreCase() wenn die Schreibweise nicht beachtet werden soll.
07.07.2016 um 14:25