1
resposta

Melhorando o exercicio 4

Melhorei o resolução do exercício 4 utilizando o método replaceAll() que recebe uma expressão regular ("[^a-zA-Z]") que substitui todos os caracteres que não são letras por "". A expressão inclusive substitui as letras com acentos pela sua equivalente sem acento, fazendo com que o método reconheça até palíndromos com pontuação.

public class Main {
    public static void main(String[] args) throws IOException {

        System.out.println(isPalindrome("Socorram-me, subi no ônibus em Marrocos")); // Saída: true
        System.out.println(isPalindrome("Java")); // Saída: false
        System.out.println(isPalindrome("Ovo")); // Saída: true
        System.out.println(isPalindrome("O Cid é médico")); // Saída: true
    }

    public static boolean isPalindrome(String text) {
        String formatedText = text.trim().replaceAll("[^a-zA-Z]", "").toLowerCase();
        String invertedFormatedText = new StringBuilder(formatedText).reverse().toString();

        return formatedText.equals(invertedFormatedText);
    }
}

Obs.: A frase do primeiro exemplo está faltando o "Socorram-me" no inicio. Print do erro

1 resposta

Olá, Gabriel. Tudo bem?

Obrigado por compartilhar sua solução aqui com a gente.

Ótimo como você utilizou o método replaceAll() em conjunto com expressões regulares para tratar a string e identificar palíndromos, mesmo com pontuações e letras acentuadas. É uma ótima abordagem em cenários como este, onde o foco é na lógica do texto "limpo". Parabéns pela solução. Continue com essa dedicação.

Conte com o apoio do Fórum. Abraços e bons estudos!