Palíndromos en Java con reverse

26/Ene/2009 Java , , , 5 Comentarios

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");

Vídeos sobre Java


5 comentarios en “Palíndromos en Java con reverse”

Víctor Cuervo

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

Víctor Cuervo

andres

owow no sabes cuanto ma ayudaste muchas gracias por el aporte exelente !! sigan asi

un abrazo

Víctor Cuervo

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

Víctor Cuervo

Fhernd

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

Víctor Cuervo

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.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*