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: 1525 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: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 |