Dúvida sobre método reverse() do StringBuffer

  Bom pessoal, estou fazendo um exercício sobre palíndromo, mas estou tendo alguma dificuldade com uma condicional na qual uso o método reverse do StringBuffer. Gostaria que vocês dessem uma olhada na condicional indicada para ver se me ajudem a achar este probleminha pois é a primeira vez que uso este método e não sei se fiz certo a condição.

O programa recebe um número e faz a verificação se é um palíndromo ou não.

Eis o código:

import java.util.Scanner;

public class TestePalindromo {

	public static void main(String[] args) {
		
              Scanner entrada = new Scanner(System.in);
              
              String x1;
                  
              
              System.out.println(" Digite um número com 5 dígitos: ");
              x1 = entrada.next();
              
              StringBuffer numero = new StringBuffer(x1);
            
              
              if(x1.length() == 5)
              {
                  if(x1.equals(numero.reverse()))  // acho que o problema está nesta condição
            	      System.out.printf(" O número %s é um palíndromo.", x1);
                  else
            	      System.out.printf(" O número %s não é um palíndromo.", x1);
              }
              else
            	  System.out.println(" O número digitado não tem 5 dígitos.");
	}

}

Obs: Palíndromo é um número no qual se lê tanto da esquerda para a direita quanto da direita para esquerda.
Ex.: 12521

O problema é que mesmo o usuário digitando um número que seja palíndromo acaba recebendo como resposta assim:

O número XXXXX não é um palíndromo.

Olhe a documentação por favor. StringBuffer (ou StringBuilder).reverse retorna o próprio StringBuffer (ou Builder) modificado.

Mas você sabe que você não pode comparar uma String com um StringBuffer (ou StringBuilder) usando equals; você tem de comparar uma String com outra String.

Portanto, o que você teria de fazer é:

x1.equals(numero.reverse().toString())

Não é porque não deu erro de compilação que seu programa está certo.

[quote=entanglement]Olhe a documentação por favor. StringBuffer (ou StringBuilder).reverse retorna o próprio StringBuffer (ou Builder) modificado.

Mas você sabe que você não pode comparar uma String com um StringBuffer (ou StringBuilder) usando equals; você tem de comparar uma String com outra String.

Portanto, o que você teria de fazer é:

x1.equals(numero.reverse().toString())

Não é porque não deu erro de compilação que seu programa está certo. [/quote]

Obrigado pela ajuda … está resolvido o problema.