Michel,
Vc,
provavelmente, sabe que "String" n�o � um tipo primitivo e por isso quando vc
compara dois tipos n�o-primitivos com " == " vc est� na realidade est�
comparando as inst�ncias (refer�ncias) e n�o o seu conte�do(como vc escreveu:
"...tenho o m�todo equals(String s)" ). Por
exemplo:
String
a1 = new String("A");
String a2 = new String("A");
a1 == a2 � false
agora
quando vc cria uma string assim:
String
a1 = "A";
String
a2 = "A";
a1==a2 � true
Isso
acontece por que, ao cirar uma String assim (String a1 = "A";), a string � armazenada em um
buffer de strings para que o seu uso seja mais �gil (particularidade da classe
String...) e quando elas s�o comparadas com "==" o
conte�do � comparado caracter a caracter, e n�o suas
inst�ncias.
espero
ter ajudado,
Michel
wrote:
Ol� galera!Para exemplificar minha d�vida, mostrarei dois exemplos:-------------EXEMPLO 1--------------public static void main(String args[]){String x = "100";String y = "100";if(x == y)System.out.println("IGUAL!!!")}------------EXEMPLO 2----------public static void main(String args[]){String x = "100";String y = Integer.toString(100);if(x == y)System.out.println("IGUAL!!!");}No exemplo 1, aparece na tela "IGUAL!!!", no exemplo 2 n�o aparece nada!Sei que para comparar duas Strings tenho o m�todo equals(String s), mas para fins de conhecimento, gostaria de saber por qu� o 1� exemplo funciona e o 2� n�o.Obrigado.
------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP d�vidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
