Palíndromos em Java

Palíndromos são palavras, frases ou sequências que podem ser lidas da mesma forma de trás para frente e de frente para trás. Exemplos clássicos incluem palavras como “arara”, “radar” e a frase “A mala nada na lama”. Neste post, vamos explorar como verificar se uma palavra ou frase é um palíndromo usando Java.

Como funciona a verificação de Palíndromos

Para verificar se uma string é um palíndromo, podemos seguir os seguintes passos:

  1. Remover espaços e pontuações: Para que a verificação seja precisa, devemos ignorar espaços em branco, pontuações e, em alguns casos, diferenças entre letras maiúsculas e minúsculas;

  2. Inverter a string: Criar uma nova string que seja a versão invertida da original;

  3. Comparar as strings: Verificar se a string original (após a limpeza) é igual à sua versão invertida.

Implementando a verificação de Palíndromos em Java

Vamos implementar um método que verifica se uma palavra ou frase é um palíndromo. Aqui está um exemplo completo:

public class Palindromo {
    public static void main(String[] args) {
        String frase = "A mala nada na lama";
        
        if (ehPalindromo(frase)) {
            System.out.println("\"" + frase + "\" é um palíndromo.");
        } else {
            System.out.println("\"" + frase + "\" não é um palíndromo.");
        }
    }

    public static boolean ehPalindromo(String str) {
        // Remover espaços e converter para minúsculas
        str = str.replaceAll("[\\W]", "").toLowerCase();
        
        // Inverter a string
        String strInvertida = new StringBuilder(str).reverse().toString();
        
        // Comparar a string original com a invertida
        return str.equals(strInvertida);
    }
}

Explicação do código

  1. Entrada do usuário: No exemplo, usamos a string "A mala nada na lama" como entrada;

  2. Método ehPalindromo:

    • Limpeza da string: O método replaceAll("[\\W]", "") remove todos os caracteres que não são letras ou números. O método toLowerCase() converte a string para minúsculas;

    • Inversão da string: Usamos StringBuilder para inverter a string, o que é uma maneira eficiente de manipular strings em Java;

    • Comparação: Comparamos a string original com a string invertida para verificar se são iguais.

Testando o programa

Você pode testar o programa com diferentes palavras e frases. Aqui estão alguns exemplos:

  • “arara”
  • “radar”
  • “A car, a man, a maraca”
  • “Não é um palíndromo”

Outro exemplo prático

Palíndromos também podem ser chamados de anacíclicos, ou seja, que voltam em sentido inverso, que refazem inversamente o ciclo:

public class Palindromo {   
  public static void main(String [] args){
	
  Scanner entrada = new Scanner(System.in);
  String entradaNormal = ""; //armazena entrada
  String entradaInvertida = ""; //armazena entrada invertida

  System.out.println("Digite palavras, frases ou valores numéricos: ");
  entradaNormal = entrada.nextLine();

  //inverte a entrada
  for(int i = entradaNormal.length() -1; i >= 0; --i)
  {
    entradaInvertida += entradaNormal.charAt(i);
  }
	
   //compara a entrada normal e invertida, ignorando letras maiúsculas ou minúsculas 	
  if (entradaNormal.equalsIgnoreCase(entradaInvertida))
   System.out.println("Palíndromo!");
	else
	 System.out.println("Não é Palíndromo!");	
 }     
}

Verificar se uma string é um palíndromo é uma ótima maneira de praticar manipulação de strings e lógica em Java. Além disso, a compreensão de palíndromos pode ser útil em vários contextos, como processamento de linguagem natural e algoritmos de busca.

Experimente expandir o exemplo, adicionando funcionalidades, como verificação de palíndromos em números ou strings com caracteres especiais. Ao dominar essa técnica, você aprimora suas habilidades de programação e se prepara para desafios mais complexos no futuro.

DOMINE O JAVA WEB ATRAVÉS DE AULAS PASSO A PASSO, DO BÁSICO AO AVANÇADO!

Domine as boas práticas com projetos práticos que vão te ajudar a desenvolver sistemas e se destacar no mercado de programação.

Clique na imagem abaixo e conheça mais detalhes do nosso curso:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre palíndromos em Java? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *