Witam. Mam dość dziwny problem, porównując dwa identyczne stringi daje mi wynik negatywny
Spróbuj metodą
equals
Czy w twoim screenshotach widzisz podkreslone na brazowo (czy to jest brazowy?) ==? Jesli tak, to wiedz ze jest to pewnie warning/wskazowka ktorej przeczytanie na pewno by pozwolilo ci samemu naprawic blad...
poczytaj czym sie różni "==" od equals. == sprawdza czy referencja do obiektów jest ta sama, a equals sprawdza Ci wartość obiektu
http://perso.ensta-paristech.fr/~diam/java/online/notes-java/data/expressions/22compareobjects.html
Sorki ale nie wiedziałem o tym. Niedawno przesiadłem się z c# na jave,a tam nie robiło to zbytniej różnicy;
Dzięki za wyjasnienie:D
Akurat powyższy kod przepisany na Javę dałby taki sam wynik, a to za sprawą http://en.wikipedia.org/wiki/Java_class_file#The_constant_pool
W C# operator równości jest przeciążany, natomiast w Javie oznacza zawsze to samo: porównanie wartości referencji albo porównanie zawartości typu podstawowego (czyli takiego co nie dziedziczy po Object). Wszystko co dziedziczy po Object (lub jest nim) ma metodę equals, więc jej powinieneś używać. Domyślna implementacja equals porównuje referencje, ale String ma ją już przeciążoną i porównuje zawartość.