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.
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
*/publicstaticbooleanesPalindromo(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índromosString invertida =newStringBuilder(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:
classMain{publicstaticvoidmain(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
*/publicstaticbooleanesPalindromo(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índromosString invertida =newStringBuilder(cadena).reverse().toString();// Para invertir recomiendo ver// https://parzibyte.me/blog/2019/02/20/invertir-cadena-string-java/return invertida.equals(cadena);}}
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.
Los palíndromos son palabras u oraciones que se leen igual de derecha a izquierda y de izquierda a derecha. Un ejemplo simple es la palabra oso, uno complicado es La ruta natural. Para comprobar si es palíndromo en Ruby o cualquier otro lenguaje, primero es necesario quitar espacios y comas,…
En este post de programación en Python te enseñaré a resolver un ejercicio sobre cómo saber si una palabra o frase es palíndroma o si es un palíndromo. Se dice que una cadena es palíndroma cuando se lee igual de derecha a izquierda que de izquierda a derecha, quitando espacios…
Introducción Ya comprobamos si una cadena es palíndroma o palíndromo en C#, un lenguaje de alto nivel en donde no nos importa mucho el manejo de la memoria, tenemos booleanos y funciones para cortar cadenas. Ahora veamos lo mismo pero en el lenguaje de programación C, uno antiguo en donde…