Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Como testar se duas palavras são anagramas uma da outra - Solução usando ordenação de strings - Exercícios Resolvidos de JavaQuantidade de visualizações: 1689 vezes |
|
Pergunta/Tarefa: Dadas duas palavras p1 e p2, escreva um código Java que informa se uma palavra é anagrama da outra. Um anagrama é uma espécie de jogo de palavras criado com a reorganização das letras de uma palavra ou expressão para produzir outras palavras ou expressões, utilizando todas as letras originais exatamente uma vez. Para esta solução você deverá, obrigatoriamente, usar a ordenação das duas strings em ordem alfabética. Seu programa deverá exibir a seguinte saída: Informe a primeira palavra: perda Informe a segunda palavra: pedra As duas palavras são anagramas uma da outra. Veja a resolução com código comentado em Java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// variáveis usadas para resolver o problema
String palavra1, palavra2;
boolean anagramas = true; // Verdadeiro
char palavra1Array[], palavra2Array[];
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos pedir para o usuário informar as duas palavras
System.out.print("Informe a primeira palavra: ");
palavra1 = entrada.nextLine();
System.out.print("Informe a segunda palavra: ");
palavra2 = entrada.nextLine();
// o primeiro passo é testar os tamanhos das duas strings
if (palavra1.length() != palavra2.length()){
anagramas = false; // falso
}
else{
// vamos converter as duas strings para letras minúsculas
palavra1 = palavra1.toLowerCase();
palavra2 = palavra2.toLowerCase();
// agora ordenamos as duas strings em ordem alfabética
palavra1Array = ordenar(palavra1);
palavra2Array = ordenar(palavra2);
// percorremos todos os os caracteres do primeiro vetor
for(int i = 0; i < palavra1Array.length; i++) {
// os dois caracteres nos dois vetores são diferentes?
if(palavra1Array[i] != palavra2Array[i]) {
anagramas = false; // falso
}
}
}
if(anagramas){
System.out.println("As duas palavras são anagramas uma da outra.");
}
else{
System.out.println("As duas palavras não são anagramas uma da outra.");
}
}
// Esta função é usada para ordenar a string em ordem alfabética
// O retorno é um vetor de caracteres
public static char[] ordenar(String texto){
char texto_array[] = texto.toCharArray();
char temp;
int i, j;
for(i = 0; i < texto_array.length - 1; i++){
for(j = i + 1; j < texto_array.length; j++){
if (texto_array[i] > texto_array[j]) {
temp = texto_array[i];
texto_array[i] = texto_array[j];
texto_array[j] = temp;
}
}
}
return texto_array;
}
}
|
|
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






