java

Palíndromo en Java: saber si una cadena es palíndroma

Un palíndromo también llamado palindromo, palíndroma o palindroma, es una palabra, número o frase que se lee igual adelante que atrás. Fuente: Wikipedia.

Hoy veremos cómo saber o comprobar si una cadena o String de Java es un palíndromo. Podremos saber si una palabra es palíndroma, o incluso saber si una oración larga es palíndroma.

Algoritmo para determinar si es palíndromo en Java

Para ello vamos a remover los espacios, comas y otros signos que no cuentan al hacer la comparación. Por poner un ejemplo, “A ti no, bonita” es un palíndromo si quitamos espacios y la coma.

Veamos entonces la función esPalindromo en Java.

Antes de todo

Aprovecho este espacio para recomendarte un punto de venta gratuito en la nube. Por cierto, la captura del código fue tomada con Polacode y le puse la marca de agua con el programa WaterPy.

Explicación del algoritmo para saber si es un palíndromo en Java

Lo primero es quitar espacios en blanco, comas y esas cosas que no cuentan al comprobar si una palabra es palíndroma. También se convierte a una misma notación, es decir, convertimos la cadena a minúscula o a mayúscula pero no mezclado.

Después, se invierte la cadena (como vimos en este post) y se comprueba si la cadena, al ser invertida, es igual a la cadena original.

En caso de que sí sea igual al invertirla, se dice que es palíndroma.

Función que dice si una cadena es palíndronma/palíndromo en Java

Aquí dejo la función, la cual regresa un booleano y recibe una cadena. Es estática porque así lo requiere la clase, pero lo que importa es el código, lo demás puedes modificarlo a tu gusto.

 /**
  Comprobar si es palíndromo en Java
  @author parzibyte
 */ public static boolean esPalindromo(String cadena) {
  // Convertir a minúscula y quitar espacios " ", puntos "." y comas ","
  // También remplazar palabras con acento p.ej. í => i

  cadena = cadena.toLowerCase().replace("á", "a").replace("é", "e").replace("í", "i").replace("ó", "o")
    .replace("ú", "u").replace(" ", "").replace(".", "").replace(",", "");
  // Invertir la cadena, y si es igual que la original entonces
  // son palíndromos
  String invertida = new StringBuilder(cadena).reverse().toString();
  // Para invertir recomiendo ver
  // https://parzibyte.me/blog/2019/02/20/invertir-cadena-string-java/
  return invertida.equals(cadena);
 }

Como lo dije, la función recibe una cadena o String y devuelve true o false.

Para realizar el algoritmo que comprueba si es o no palíndromo, se convierte a minúscula y se le quitan los espacios y comas. También se remplazan las vocales acentuadas por las no acentuadas.

Ejemplo de uso

Aquí está el código completo que recorre un arreglo de cadenas y por cada una de ellas va indicando si la palabra es palíndroma; a veces también se prueba con algunas oraciones largas:

class Main {
 public static void main(String[] args) {
  String[] cadenas = { "La ruta natural", "Esto no es", "Parzibyte", "Hola", "Sol", "Ana", "Oro", "Oso",
    "A ti no, bonita",
    "Adivina ya te opina, ya ni miles origina, ya ni cetro me domina, ya ni monarcas, a repaso ni mulato carreta, acaso nicotina, ya ni cita vecino, anima cocina, pedazo gallina, cedazo terso nos retoza de canilla goza, de pánico camina, ónice vaticina, ya ni tocino saca, a terracota luminosa pera, sacra nómina y ánimo de mortecina, ya ni giros elimina, ya ni poeta, ya ni vida",
    "A mamá, Roma le aviva el amor a papá y a papá, Roma le aviva el amor a Mamá", "Me gusta programar en Java" };
  for (String cadena : cadenas) {
   System.out.println("¿'" + cadena + "' es palíndromo? " + esPalindromo(cadena));
  }
 }

 /**
  Comprobar si es palíndromo en Java
  @author parzibyte
 */ public static boolean esPalindromo(String cadena) {
  // Convertir a minúscula y quitar espacios " ", puntos "." y comas ","
  // También remplazar palabras con acento p.ej. í => i

  cadena = cadena.toLowerCase().replace("á", "a").replace("é", "e").replace("í", "i").replace("ó", "o")
    .replace("ú", "u").replace(" ", "").replace(".", "").replace(",", "");
  // Invertir la cadena, y si es igual que la original entonces
  // son palíndromos
  String invertida = new StringBuilder(cadena).reverse().toString();
  // Para invertir recomiendo ver
  // https://parzibyte.me/blog/2019/02/20/invertir-cadena-string-java/
  return invertida.equals(cadena);
 }
}

Por cierto, ahí las cadenas son declaradas en el arreglo pero bien podrían ser introducidas por el usuario.

Descargar y probar función para saber si una cadena es palíndroma en Java

Si quieres, puedes descargar el código. Para ello te recomiendo instalar Java y también NetBeans.

Aprende más sobre Java aquí, y lee más sobre algoritmos aquí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.