Para comparar Strings vc nao pode usar o operador ==.
Use o método equals() da classe String para fazer a comparação
Stringstr1="abcdef";Stringstr2="abcdef";Stringstr3="abc";if(str1==str2)System.out.println("Operador == funciona para Strings");elseSystem.out.println("operador == NAO funciona para Strings");if(str1.equals(str2))System.out.println("Metodo equals() compara Strings corretamente!");elseSystem.out.println("Parece que o equals nao funciona!");if(!str1.equals(str3))System.out.println("Realmente, str1 e str2 sao diferentes!");
Quando vc utiliza o operador == para comparar Strings na verdade vc está comparando objetos na memória e não o conteúdo destes objetos. Como cada String é um objeto distinto, essa igualdade nunca retornará verdadeiro )
G
gil_email10
só complementando que quando se usa == se compara a referência ao objeto na memória…
flw
LuizLG
Porém, a primeira comparação com == vai dar verdadeiro porque o Java vai alocar espaço para um objeto String, sendo referenciado pelo str1 e str2
Agora se as strings foram criadas assim
String str1 = "abcdef";
String str2 = new String("abcdef");
serão dois objetos diferentes.