jump to navigation

Palindromos en Java con reverse Enero 26, 2009

Publicado por lineadecodigo en : Java , trackback

En Linea de Código ya hemos escrito sobre como saber si una palabra es un palindromo con Java. Pero gracias a las contribuciones de nuestros lectores vamos a ver cómo resolverlo de una forma más sencilla.

En este caso nos vamos a apoyar en el método .reverse de la clase StringBuffer. Este método invierte el contenido de la cadena.

Pero vamos por partes. Lo primero será tener una palabra/frase que sea un palíndromo, e instanciarla en un String.

  1. String sPalabra = "dabale arroz a la zorra el abad";

Preparamos un poco la palabra/frase, quitándola los espacios en blanco. Para ello utilizamos el método replace.

  1. sPalabraSinEspacios = sPalabra.replace(" ", "");

Ahora cargaremos el string buffer y le aplicamos el método .reverse, quedándonos la palabra/frase dada la vuelta.

  1. StringBuffer sb = new StringBuffer(sPalabraSinEspacios);
  2. sb = sb.reverse();

Ya solo nos quedará el comparar la palabra original con la palabra dada la vuelta mediante el método reverse. En caso de que coincidan será que la palabra es un palíndromo.

  1. if (sPalabraSinEspacios.equalsIgnoreCase(sb.toString()))
  2. System.out.println(sPalabra + " es un PALINDROMO");
  3. else
  4. System.out.println(sPalabra + " NO es un palindromo");

Articulos Similares:

|- Descargar el código
|- Reportar error en el código

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 4146 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (Todavia sin evaluar)
Loading ... Loading ...

Comentarios»

1. Manuel - Enero 30, 2009

Hola, soy el mismo que te preguntó lo de los acentos en la otra forma de ver si una palabra era palíndroma.
Ahora, de esta manera resulta trivial, ya que solamente hace falta hacer:

String palabraSinEspaciosNiAcentos = palabra.replace(” “, “”).replace(‘á’, ‘a’).replace(‘é’, ‘e’).replace(‘í’, ‘i’).replace(‘ó’, ‘o’).replace(‘ú’,'u’);

Y a partir de ahí, tirar… Aunque aun así, me parece un poco rudimentario y “sólo” funcionaria en el caso de que hubiera tildes del tipo á,é… Estaría interesante hacerlo también por si hubiera signos de puntuación y demás, aunque ya sería rizar demasiado el rizo. Así a bote pronto pienso que se podría jugar con la TABLA ASCII, algo del tipo if (primerCaracterCadena>=’a’ && caracter<=’z')…

Un saludo.

2. Fhernd - Abril 2, 2009

Hola! Sugiero que también se trabaje con números capicúas. Hasta pronto!

3. alejandro - Mayo 6, 2010

man muchas gracias de toooooooodas las formas q vi esta es la mas sencilla para trabajar con caracteres bn men sigue asi muchas gracias


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen