O m�todo equals do StringBuffer retorna verdadeiro somente se vc. est�
comparando duas refer�ncias do mesmo objeto.

Ex:
{
        StringBuffer sb1 = new StringBuffer("a");
        StringBuffer sb2 = new StringBuffer("a");
        StringBuffer sb3 = s1;

        System.out.println(sb1.equals(sb3)); // imprime true
        System.out.println(sb1.equals(sb2)); // imprime false
        System.out.println(sb1.toString().contentEquals(sb2)); // imprime true
}

Voc� pode estar se perguntando: Mas por que o m�todo equals do StringBuffer
n�o � igual ao m�todo equals do String?

Na verdade, o StringBuffer implementa o m�todo equals de modo correto. Quem
tem uma implementa��o diferente mesmo � a classe String, que faz uma
compara��o caracter a caracter ao inv�s de checar a o tipo e refer�ncia.
Esta checagem padr�o est� presente em qualquer objeto, uma vez que o m�todo
equals � implementado na classe Object. Apenas algumas classes (como a
String) � que sobrescrevem este m�todo para alguma checagem espec�fica.

Por�m, como voc� pode observar na �ltima linha do meu c�digo, � poss�vel
fazer esta compara��o que vc. deseja convertendo um dos objetos StringBuffer
para String (atrav�s do m�todo toString()). Uma vez que um deles � do tipo
String, voc� pode utilizar o m�todo contentEquals(<StringBuffer>), que
compara um objeto do tipo String a um StringBuffer.

Com isso vc. pode usar os outros m�todos da classe String tamb�m. Para fazer
uma compara��o case-insensitive, basta proceder da seguinte forma:

...
        StringBuffer sb4 = new StringBuffer("A");
        System.out.println(sb1.toString().equalsIgnoreCase(sb4.toString())); //
imprime true
...

{}'s
David Rissato Cruz

-----Mensagem original-----
De: Marcio Adriano Batista Leal [mailto:[EMAIL PROTECTED]
Enviada em: quarta-feira, 26 de fevereiro de 2003 22:21
Para: [EMAIL PROTECTED]
Assunto: [java-list] Duvida StringBuffer



Gostaria de Saber porque n�o apresenta a mensagem OK, pois estou comparando
dois Objetos identicos.

public class testestring
{
   public static void main(String args[])
   {
     StringBuffer sb = new StringBuffer("abc");
     StringBuffer s1 = new StringBuffer("abc");
     if (sb.equals(s1))
     {
       System.out.println("OK");
     }
   }


}




_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil.  http://www.hotmail.com


------------------------------ 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]
-------------------------------------------------------------------------



------------------------------ 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] 
-------------------------------------------------------------------------

Responder a