Para comparar duas strings, use equals ou equalsIgnoreCase.
haha eu acabei de me lembrar depois q postei =o haha
vlw
T
thingol
Acho, em minha opinião, que o Gosling comeu bola quando definiu a classe String e redefiniu apenas o operador "+".
Ele deveria ter redefinido "==", "!=", "<", "<=", ">", ">=" também.
Uma boa parte dos problemas com os iniciantes em Java é que o "==" não funciona direito com Strings.
shison
Aproveitando o assunto…
No java tem como fazer essa redefinição ao definir uma classe?
Tipo no C++ onde eu conheço como sobrecarga de operadores.
thiago.correa
Java não possui sobrecarga de operadores
kaabah
Talvez isso para mostrar a coerência mostrando que String é um Object e possui as características do tal. Mas concordo plenamente com você thingol. Já que a classe String é cheia de “não me toque” =) bem que ele poderia ter feito a redefinição dos operadores mesmo.
Boa parte desse tipo problema seria resolvido em bem menos tempo.
[]´s
Kknd
thingol:
Acho, em minha opinião, que o Gosling comeu bola quando definiu a classe String e redefiniu apenas o operador "+".
Ele deveria ter redefinido "==", "!=", "<", "<=", ">", ">=" também.
Uma boa parte dos problemas com os iniciantes em Java é que o "==" não funciona direito com Strings.
Na verdade isso serve para qualquer objeto, pois o seguinte código:
Imprime “Diferentes” também. Eu até gosto do padrão do Java de que == significa o mesmo objeto, e não conteúdos iguais!
ViniGodoy
Eu concordo com o Thingol.
Especialmente pq String é uma classe que mais se parece com um tipo primitivo.
Para um iniciante é muito difícil entender que ele pode fazer: String x = “Nova String”; (No lugar de String x= new String(“x”);
E:
String y = x + x; (No lugar de y = x.concat(x));
Mas não pode fazer o == para comparação…
Fora o fato de que comparar com o == dá certo às vezes, por causa do pool interno do java (não necessariamente por causa do conteúdo da String)… Aí fica ainda mais difícil de explicar porque daquela última vez o exercício que ele fez passou e dessa vez não…
bzy
Sei que já é assunto antigo mas…
Pior é quando vc pode fazer assim:
IF( a = b) THEN …
Acho legal que == é para objeto e equals conteúdo. Poderia ser == para conteúdo e === para objeto também, desde que ficasse separado = de == de === de equals.
nbluis
Acho natural…
Imaginem se fosse o caso do “==” para comparação de duas Strings…
Dai teria um monte de gente reclamando que a classe String não suporte comparação de dois objetos…
Sei se so to colocando lenha na fogueira… mas java na sua essência tende a fazer com que tenha suporte a tudo, mesmo que isso complique um pouco
E ainda, temos que dar graças a deus de não serem char[].