Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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 Java

Quantidade 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.
Resposta/Solução:

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;
  }
}


Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 22 usuários muito felizes estudando em nosso site.