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:
- 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;
- Inverter a string: Criar uma nova string que seja a versão invertida da original;
- 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
- Entrada do usuário: No exemplo, usamos a string
"A mala nada na lama"
como entrada; - 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étodotoLowerCase()
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.
- Limpeza da string: O método
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 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:
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
Sobre o Autor
0 Comentários