
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.
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.
StringBuffer sb = new StringBuffer(sPalabraSinEspacios);
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()))
System.out.println(sPalabra + " es un PALINDROMO");
else
System.out.println(sPalabra + " NO es un palindromo");
leoardo
necesito hacer un código que me diga si una palabra es palindrome utilizando la recursividad
jesus cervantes
hola que bien me yudaroin un monto ya que yo estudio en el tecnologico de chetumal llevo la carrera de ing.tecnologias de la informacion y comunicaciones y me dejaron una tarea asi grasias
estan muy buenos los tutoriales les agradesco y antemano me da gusto que aiga genmte como ustedes que ayuden alas de mas personas
andres
owow no sabes cuanto ma ayudaste muchas gracias por el aporte exelente !! sigan asi
un abrazo
alejandro
man muchas gracias de toooooooodas las formas q vi esta es la mas sencilla para trabajar con caracteres bn men sigue asi muchas gracias
Fhernd
Hola! Sugiero que también se trabaje con números capicúas. Hasta pronto!
Manuel
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.