Compiler geht nicht if-schleife rein

desaster0505

Erfahrenes Mitglied
Servus Leute !
Habe hier ein vermeintlich billiges Problem ! z ist ein Wort, welches aus einer Textdatei eingelesen wird. Daraufhin soll eine Prüfung stattfinden. z bzw. Location ist auch "Restaurant" (habe Debugger benutzt), aber trotzdem geht der Compiler nicht in die Schleife rein und setzt dafür die 19, das gleiche gilt für "Bank". Woran kann das denn liegen ? Leerzeichen-Probleme konnte ich auch keine feststellen !

Debugger sagt doch ,dass "Restaurant" eingelesen worden ist ?!


Code:
String Location = z;
		if (Location=="Restaurant"){
			 Location="19";
		}
		else if(Location=="Bank"){
			 Location="10";
		}
 
Hi.

Man kann in Java Strings nicht mit den normalen <= != == >= Operatoren vergleichen.

Versuch's mal so:
Java:
if (Location.equals("Restaurant") {
...
}
Gruß
 
Strings sind Klassen und Klassen werden i.d.R. mit der Standardmethode equals (oder auch compareTo) verglichen.
Bei String gibt es noch equalsIgnoreCase wenn die Groß-/Kleinschreibung egal sein soll.

Wenn du hier ein == benutzt vergleichst du die Adresse im Speicher und nicht den Inhalt.
 
Alles klar, Danke. Daran lag es. hatte auch schon diese Vermutung das er das anders vergleichen will, aber wusste nicht, dass es über das Equals läuft.

Merci
 
Das Problem ist ja auch schon gelöst - somit nur der Vollständigkeit halber:

- Diese Strings (die Du verglichen willst) sind Objekte, also tatsächliche Instanzen von Klassen.
- Zur Laufzeit ist es nicht mehr der Kompiler, der da in die Schleife geht, denn der Kompiler übersetzt das Programm eben zur Kompilierungszeit.

So, fertig Klugsch.... :-)
 
Zurück