Programa Java para verificar se duas strings são anagramas

Neste exemplo, vamos verificar se duas strings são anagramas ou não em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Java String
  • Arrays Java

Duas strings são consideradas anagramas se pudermos formar uma string organizando os caracteres de outra string. Por exemplo, Race and Care . Aqui, podemos formar Race organizando os personagens de Care.

Exemplo 1: programa Java para verificar se duas strings são anagramas

 import java.util.Arrays; class Main ( public static void main(String() args) ( String str1 = "java"; String str2 = "vaaj"; // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) )

Resultado

 Java e Vaaj são anagramas.

Em Java, temos duas strings chamadas str1 e str2. Aqui, estamos verificando se str1 e str2 são anagramas.

Aqui,

  • str1.toCharArray () - converte a string em uma matriz char
  • Arrays.sort () - classifica as duas matrizes char
  • Arrays.equal () - verifica se a matriz classificada de char são iguais

Se as matrizes classificadas forem iguais, as strings serão anagramas.

Nota : aqui, o exemplo diferencia maiúsculas de minúsculas. Ou seja, Java e java não são anagramas. É porque o Arrays.sort()compara dois caracteres com valor ASCII. E o valor ASCII de J e j são diferentes.

Exemplo 2: pegue entradas de string de usuários e verifique se as strings são anagramas

 import java.util.Arrays; import java.util.Scanner; class Main ( public static void main(String() args) ( // create an object of Scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter first String: "); String str1 = input.nextLine(); System.out.print("Enter second String: "); String str2 = input.nextLine(); // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) input.close(); ) )

Resultado

 Digite a primeira String: Race Digite a segunda String: Care Race e Care são anagramas.

No exemplo acima, usamos a classe Scanner para obter a entrada do usuário. Aqui, verificamos se as strings fornecidas pelos usuários são anagramas.

Artigos interessantes...