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.
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.
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.
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.
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.
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.
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í.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.