Para el uso de frases y que se requieran eliminar espacios en blancos, a mi me funciono lo siguiente: public static boolean isPalindromo(String cadena){ cadena = cadena.toLowerCase(); //Convierte la cadena en minusculas cadena=cadena.replace(" ",""); //Elimina espacios en blanco for (int i = 0, j = cadena.length() - 1; i
Год назад
Hola 😀 Ignacio. Gracias por compartir tu solución con la comunidad. Saludo 👋🏻.
Mi resolución es esta: public class Palindromo { public static void main(String[] args) { // prueba con estas frases " A luna ese anula. " , " A Mercedes, ese de crema. " String frase = " A mamá, Roma le aviva él amor a papá, y a papá, Roma le aviva el amor a mamá "; esPolindromo(frase); } public static void esPolindromo(String p) { String fraseReversa = ""; String frase = p.toLowerCase().trim().replace(" ", "") .replace(".", "").replace(",","").replace("á","a") .replace("é","e").replace("í","i").replace("ó","o") .replace("ú","u"); for (int i = frase.length() - 1; i >= 0; i--) { fraseReversa += frase.charAt(i); } if (frase.equals(fraseReversa)) { System.out.println("la frase es palindroma"); } else { System.out.println("la frase no es palindroma"); } } }
Este método no funciona siempre, puede dar la casualidad de que la palabra que metas no sea un palíndromo pero que justo en la última comprobación del bucle for las dos últimas letras coinicidan y te devuelva un true pero en realidad no sería un palíndromo, como por ejemplo pararía en este caso: ABCDEFEGHIJ, este conjunto de letras no es un palíndromo pero erróneamente te devolvería un true porqué las dos últimas ees coinciden.
3 года назад
Hola, Gracias por tu comentario. Revisaré. Saludo,