Porównywanie stringów - błąd

0

Witam. spójrzcie na poniższy kod:

        String s = "cos tam";
        String[] t = s.split(" ");
        if(t[0] == "cos")
           //i tu kod wg mnie powiniem być wykonany, a nie jest...;

Ja widzicie problem tkwi w ostatniej linice. Zmienna t[0] przechowuje wartość "cos", jednak gdy chcę porównać ją właśnie z takim samym łańcuchem tekstowym "cos", uznaje, że są to 2 różne wartości.
Jestem jednak zdolnym człowiekiem i sobie poradziłem ( ;-) ):

        if(t[0].intern() == "cos")
           // jupii, kod został wykonany!

lub

        if(t[0].equals("cos"))
           // jupii, kod został wykonany!

Chciałbym się jednak dowiedzieć dlaczego w pierwszym przykładzie pojawia się błąd, jesteście w stanie mi odpowiedzieć?

0

Bo do porównywania stringów służą właśnie metody, a nie "==". Jest jeszcze metoda compareTo("string").

0

mala poprawka - do porownywania wartosci sluzy equals(), == porownuje referencje czyli sprawdza czy to ten sam obiekt.

pozdrawiam

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