Java: EIngabe wird nicht als gleich mit Konstante erkannt?

OP (Firma: Q3) #4391196
Lesenswert?
• ▲
▼
Ich bin gerde dabei, mich in Java einzuarbeiten. Dazu habe ich ein 
kleines Tool mit einem primitiven Menü (Konsole) in Arbeit. Wenn man 
eine 1 drückt (plus Enter) wird Funktion A aufgerufen, wenn man eine 2 
drückt ... usw.

Alles funkioniert, ausser einer Sache, die mich fast um den Verstand 
bringt: Das Menü läuft in einem Loop mit While am Anfang. Dort steht:

String comp="X";
while (input != comp) { ... }

Also sollte doch bei einem Pre-Check-Loop die Sache ein Ende finden, 
wenn input gleich "X" ist, oder nicht? Wird aber einfach nicht erkannt!

Ich habe mit von beiden den Datentyp und die Länge ausgeben lassen. 
Beide (also input und comp) haben die Länge 1 und den Datentyp 
java.lang.String. Trotzdem werden sie nicht als gleich akzeptiert. Warum 
nicht????

*input wird mit toUppercase() groß gemacht
* die Eingabe erfolgt mittels readLine aus einem BufferedReader
Gast #4392628
Lesenswert?
• ▲
▼
Ein Vergleich mit operatoren vergleicht die Referenz des Objektes, nicht 
den Inhalt. Also quasi den "pointer".

Strings vergleicht man mit Stringobjekt.compareTo(other String) oder 
equals()

so wie man in C ja auch nicht einfach ein "==" benutzt, sondern ein 
strcmp()

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.