Selvom der er svaret på spørgsmålet kommer her forklaringen på dit problem...
Når man skal sammenligne primitive typer i Java anvendes == operatoren, men den fungerer ikke på samme måde når der er tale om sammenligning af objekter, og tekststrenge er objekter!
Når man anvender == operatoren på 2 objekter sammenlignes ikke indholdet af disse objekter (ækvivalens som med primitive typer), men selve "adresserne" på objekterne. Udtrykket er derfor kun sandt hvis der er tale om præcis samme objekt!
Ønsker man derfor at kunne sammenligne objekter på indhold bør man tilføje en implementation af metoden equals() i sine objekter.
Grunden til, at følgende udtryk alligevel er sandt:
String a = "En tekst streng";
String b = "En tekst streng";
if(a == b) System.out.println("Det er samme objekt");
...er at compileren kun opretter strengkonstanter 1 gang og genbruger samme objekt senere i koden. Det kan den tillade sig fordi at tekststrenge i Java er ikke "muterbare", dvs. du kan ikke ændre på indholdet af objektet når det først er oprettet. Derfor er følgende udsagn falsk:
String a = "En tekst";
String b = "En tekst streng";
a = a + " streng";
if(a == b) System.out.println("Det er samme objekt");
else System.out.println("Det er ikke længere samme objekt");
Derfor.... brug altid equals() metoden når du skal sammenligne tekststrenge eller andre objekter medmindre du er interesseret i at finde et nøjagtigt objekt.