Crear una función esPalindromo que nos diga si una cadena es palíndroma:
boolean esPalindromo(String cadena)
esPalindromo(«Viva la paella»)->false
esPalindromo(«Sara Baras»)->true
public static void main(String[] args) {
String[] cadenas= {"No subas, abusón","Yo dono rosas, oro no doy","No traces en ese cartón"};
System.out.println(esPalindromo("Viva la paella"));
System.out.println(esPalindromo("Sara Baras"));
System.out.println(esPalindromo("Isaac no ronca así"));
for(String cadena:cadenas) {
System.out.println(esPalindromo(cadena));
}
System.out.println("Con clase");
Palindromo pal=new Palindromo("Dábale arroz a la zorra el abad");
System.out.println(pal.esPalindromo());
}
// Una cadena es palíndromo si es igual a ella misma invertida
public static boolean esPalindromo(String cadena) {
cadena = normalizar(cadena);
StringBuilder foo = new StringBuilder(cadena);
return cadena.equals(foo.reverse().toString());
}
// He creado una función normalizar para otros caracteres
public static String normalizar(String cadena) {
return cadena.toLowerCase().replace("á", "a").replace("é", "e").replace("í", "i").replace("ó", "o")
.replace("ú", "u").replace("ü","u").replace(" ", "").replace(".", "").replace(",", "");
}
// La estructura if (condicion) return true else return false es igual a:
// return condicion
public class Palindromo {
private String cadena;
public Palindromo(String cadena) {
this.cadena=cadena;
}
public boolean esPalindromo() {
String cad = normalizar(cadena);
StringBuilder foo = new StringBuilder(cad);
return cad.equals(foo.reverse().toString());
}
private String normalizar(String cadena) {
return cadena.toLowerCase().replace("á", "a").replace("é", "e").replace("í", "i").replace("ó", "o")
.replace("ú", "u").replace("ü","u").replace(" ", "").replace(".", "").replace(",", "");
}
}