Wątek przeniesiony 2015-03-16 07:17 z Java przez bogdans.

Porównywanie stringów

2015-03-15 21:11
_tytanik2011
0

Witam mam program Logo Quiz w Javie z użyciem JFrame i zrobiłem że gdy do pola tekstowego wpisze się Skype powinno być, że dobra odpowiedź a wyskakuje że zła. Co mam zrobić, jak poprawić kod? Część kodu w której jest błąd:

public void actionPerformed(ActionEvent e) {
    odp = "Skype";
    if (zyc==0){
        JOptionPane.showMessageDialog(this, "Przegrałeś");
        dispose();
    }
    else{
        if (tf1.getText()==odp){
            JOptionPane.showMessageDialog(this, "Odpowiedź prawidłowa. Dostajesz 1 punkt.");
            pkt += 1;
            Latwy2 lat2 = new Latwy2();
            dispose();
        }
        else{
            JOptionPane.showMessageDialog(this, "Odpowiedź nieprawidłowa tracisz jedną sznase");
            zyc = zyc-1;
            Zle zle = new Zle();
            dispose();
        }
    }

}
}

Pozostało 580 znaków

2015-03-15 21:16
0

stringi w Javie porównuje się za pomocą equals()

Pozostało 580 znaków

2015-03-15 21:17
1

if (tf1.getText()==odp)
Powinno być
if (tf1.getText().equals(odp))

Stringi porównuje się metodą equals, którą posiada kazdy obiekt. Korzystając z == porównujesz adres z pewnymi wyjątkami.

Pozostało 580 znaków

2015-03-15 21:17
tytanik2011
0

Dzięki za pomoc

Pozostało 580 znaków

2015-03-15 22:58
0

Ja mam jeszcze małą sugestię.

Użytkownicy mogą wpisywać nazwy marek bez zachowania wielkości liter. Jeśli dopuszczasz możliwość, że zarówno odpowiedź skype oraz Skype powinna być poprawna, możesz użyć metody equalsIgnoreCase():

if (tf1.getText().equalsIgnoreCase(odp)){
    //....
}

ło a kto Ty? - karolinaa 2015-03-15 23:09
jakaś prehistoria - NoZi 2015-03-15 23:18

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0