Java String überprüfung schlägt fehl?

... komplette Frage anzeigen

5 Antworten

Mit dem Operator "==" vergleichst du nur die Speicheradressen - für den Inhalt sollte die Methode

String equals (String anotherString)

verwendet werden.

Also in deinem Fall:

System.out.println(vfvNummer.equals(name);

ergibt true.

Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.

LG Willibergi

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Willibergi
15.04.2016, 20:10

Ich hab' eine Klammer vergessen, aber das Prinzip ist rübergekommen, hoffe ich. ;)

LG Willibergi

0
Kommentar von Willibergi
18.04.2016, 13:26

Danke für den Stern! ;)

LG Willibergi

0

Probier mal:

System.out.println(vfvNummer.equals(name));

"==" klappt bei String leider nicht so gut :/

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Hiernoch String aus der Java API. Da kannst du dir unten mal die Methoden angucken die das mitliefert.(unter anderem auch equals)

Antwort bewerten Vielen Dank für Deine Bewertung

Lass doch die vorletzte Zeile Weg und mach es so:

definiere ganz oben einen boolean und setze ihn in einer if abfrage auf true.

Also das unter die Strings:

boolean status = false;


Und das hier Anstatt der vorletzten Zeile:

if(vfvNummer.equals(name)){
status = true;
}else{
status = false;
}


Antwort bewerten Vielen Dank für Deine Bewertung

Haha, danke für die vielen und schnellen Antworten.

Wenn man den ganzen Tag programmiert vergisst man mal sowas einfaches...

Danke an alle!!

Antwort bewerten Vielen Dank für Deine Bewertung

Verwende die String.equals() Methode. Der == Operator vergleicht die Objekte an sich anhand des Objekt-Hashs.

vfvNummer und name haben zwar den selben Inhalt, sind aber nicht das selbe Objekt.


System.out.println(vfvNummer.equals(name));
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von 969669
15.04.2016, 20:06

In dem Fall würde doch auch .getString funktionieren oder nicht? :)

0
Kommentar von Borgler94
15.04.2016, 20:06

genau so gehörts ;)

0
Kommentar von MalNachgedacht
16.04.2016, 15:03

Der == Operator vergleicht die Objekte an sich anhand des Objekt-Hashs.

Das stimmt nicht:

Der == Operator prüft (wenn links und rechts davon eine Objektreferenz steht) ob auf beiden Seiten auf das gleiche (im Sinne von ein- und dasselbe) Objekt referiert wird.

Es kann durchaus zwei verschiedene Objekte geben welche den gleichen hash haben - trotzdem würde == dann nicht true liefern.

0