brett vorm kopp bei einer if-anweisung

Status
Nicht offen für weitere Antworten.

stetabar

Bekanntes Mitglied
hallo, bitte nicht lachen, aber ich gehe gerade echt am stock.
will einfach nur einen string überprüfen mit

Code:
	//mal von hand dazugeschrieben....
String temp = "test";

if (temp == "test") {
		temp="irgendwas";
		System.out.print("If-ja: "+temp);
	}
	else {
		temp="test";
		System.out.print("If-nein: "+temp);
	}

ich kann von hand "test" eintragen, aber er geht immer in die else-abfrage.
was ist da bitte falsch???
 

Ariol

Top Contributor
statt == die Methode equals(String s) benutzen.

Code:
String temp = "test"; 
 
 if (temp.equals("test")) { 
       temp="irgendwas"; 
       System.out.print("If-ja: "+temp); 
    } 
    else { 
       temp="test"; 
       System.out.print("If-nein: "+temp); 
    }
 

Daywalker2004

Mitglied
Strings kann man nicht mit == überprüfen. Du musst die Methode equals der Klasse String benutzen.

Code:
String test = "Hallo";

if (test.equals("Hallo") {

   // Mach was
} else {
   // Mach was Anderes
}

//edit Da war jemand schneller ;)
 

RaoulDuke

Bekanntes Mitglied
Eigentlich müsste dein:

if (temp == "test")

true sein, jedenfalls wenn du oben

String temp = "test";

festgelegt hast. Denn test und "test" sind hier nicht nur inhaltlich gleich, sondern sogar das gleiche Objekt.


Wers nicht glaubt kann ja mal folgenden ausprobieren:

Code:
        String a = "Hallo Welt";
        String b = "Hallo " + "Welt";
                
        if(a == b){
            System.out.println("gleich");
        }else{
            System.out.println("ungleich");
        }
    
        if(a == "Hallo Welt"){
            System.out.println("gleich");
        }else{
            System.out.println("ungleich");
        }
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben