Palindromos en Java con reverse Enero 26, 2009
Publicado por lineadecodigo en : Java , trackbackEn 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.
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.
sPalabraSinEspacios = sPalabra.replace(" ", "");
Ahora cargaremos el string buffer y le aplicamos el método .reverse, quedándonos la palabra/frase dada la vuelta.
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.
if (sPalabraSinEspacios.equalsIgnoreCase(sb.toString())) else
Articulos Similares:
- Saber si una palabra es un palíndromo con Java
- Saber si un número es capicua con Java
- Invertir una frase en Java
- Función Replace en JavaScript
- Java y la palabra más larga de una frase
|- Reportar error en el código
Enviar entrada por email
|
Imprimir
| 4146 visitas





Comentarios»
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.
Hola! Sugiero que también se trabaje con números capicúas. Hasta pronto!
man muchas gracias de toooooooodas las formas q vi esta es la mas sencilla para trabajar con caracteres bn men sigue asi muchas gracias