MiniEjercicio

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(",", "");
	}
}