testuje działanie metody split() i napotykam na problem. Dla np. takich danych wejściowych: jeden dwa program nie wyśweitla komunikatów “OK” mimo, że wczesniej jak je wypisuje to mają one takie wartości.
Ktoś może widzi gdzieś jakiś prosty błąd? Próbowałem bez i z trim() i efekty są takie same mimo iż System.out.println prawidłowo wyświetla wartości na ekran czyli jeden i dwa.
W Javie == użyte na referencjach (wszelkie typy obiektowe są w Javie referencjami) porównuje referencje , czyli sprawdza czy jest to ten sam obiekt, a nie czy jest taki sam.
Do sprawdzania czy obiekty są takie same służy metoda .equals()
if(a.equals(b)){}
W przypadku _String_ów możesz jeszcze użyć metody .compareTo()
int p = a.compareTo(b);
if(p < 0) { /* a < b */ }
if(p == 0) { /* a == b */ }
if(p > 0) { /* a > b */ }
I ZAWSZE upewnij się, że to na czym wołasz equals nie jest nullem (dostaniesz NullPointerException). Jeśli porównujesz coś do konkretnego stringa, to najlepiej w odwrotnej kolejności, np.: