Frage von akin2000, 28

Java if Abfrage mit UND verknüpfen - kann mir jemand helfen?

Hei,

ich weiß wie man in einer if Abfrage eine UND bzw. ODER Abfrage verknüpft...

if(x=1 || x>1 )

if(x=1 && x>1)

aber bei String glaube ich habe ich Probleme :c

public void actionPerformed(ActionEvent event) {

            alter=Integer.parseInt(tx2.getText());
            name=tx1.getText();
            geschlecht=tx3.getText();
            geschlecht.toLowerCase();
            if(alter>18 && geschlecht=="männlich" )
            {
                System.out.println("Hallo Herr "+name);
            }else if(alter>18 &&  geschlecht=="weiblich")
            {
                System.out.println("Hallo Frau "+name);
            }else if(alter<18){ 
                System.out.println("Hallo "+name);
            }

die ersten zwei if Abfragen funktionieren einfach nicht :/

Danke im Voraus !

Antwort
von TUrabbIT, 21

Für Vergleiche von Objekt Inhalten muss meist .equals() genutzt werden

Antwort
von MrTomate, 28

Probier es mal mit geschlecht.contains("weiblich"), sollte funktionieren, soweit ich weiß geht das mit if(String=="") nicht.

Antwort
von Deadlycucumber, 23

Strings vergleicht man nicht mit ==, sondern mit String1.equals(String2).

Bsp.: geschlecht.equals("männlich")


Hier gibts ein paar mehr Infos warum:
https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java


Antwort
von nintendoluk, 11

Wenn du zwei Strings mit == vergleichst, vergleichst du nur die Objektreferenzen, aber nicht den aktuellen Text.

Somit gilt:
if( "Test" == "Test" ) //das ist false

Wenn du wirklich den Text und nicht die Referenzen vergleichen willst, musst du die Object.equals() Methode verwenden, also:

if( "Test".equals("Test") ) //das ist true

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten