public class Main {
public static void main(String[] args) {
System.out.println(ehPalindromo("A man a plan a canal Panama")); // true
System.out.println(ehPalindromo("arara")); // true
System.out.println(ehPalindromo("palindromo")); // false
System.out.println(ehPalindromo("Socorram-me, subi no ônibus em Marrocos")); // true
}
public static boolean ehPalindromo(String frase) {
if (frase == null) {
return false;
}
// Remove tudo que não for letra ou número e converte para minúsculas
String limpa = frase.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
// Compara a string limpa com sua versão invertida
return new StringBuilder(limpa).reverse().toString().equals(limpa);
}
}