Давно я на java не писал, но что-то мне подсказывает, что там через операцию == строки нельзя сравнивать. Надо через метод equals. Дело в том, что строки могут быть одинаковыми, но при этом представлены разными объектами в памяти. Оператор == вернет false, если объекты разные, даже если контент у них одинаковый.
@Vit я пожалуй вас поправлю, не всегда == вернет false, поскольку строки берутся из пула строк. Под == не попадут явно созданные через new строки и динамически созданные. Все остальные будут возвращать true