feed twitter facebook LinkedIn facebook

Java » Palindromos en Java con reverse

Enero 26, 2009 por Víctor Cuervo . 7470 visitas 5 Comentarios Imprimir Imprimir

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");
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
tags:

Artículos relacionados:

5 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

  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

  4. andres
    Octubre 22, 2010 #

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

    un abrazo

  5. jesus cervantes
    Diciembre 6, 2010 #

    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

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*