Programme Java pour vérifier si deux chaînes sont des anagrammes

Dans cet exemple, nous vérifierons si deux chaînes sont des anagrammes ou non en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Chaîne Java
  • Tableaux Java

Deux chaînes sont dites anagrammes si nous pouvons former une chaîne en arrangeant les caractères d'une autre chaîne. Par exemple, Race and Care . Ici, nous pouvons former Race en arrangeant les personnages de Care.

Exemple 1: programme Java pour vérifier si deux chaînes sont des anagrammes

 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."); ) ) )

Production

 Java et Vaaj sont des anagrammes.

En Java, nous avons deux chaînes nommées str1 et str2. Ici, nous vérifions si str1 et str2 sont des anagrammes.

Ici,

  • str1.toCharArray () - convertit la chaîne en un tableau de caractères
  • Arrays.sort () - trie les deux tableaux de caractères
  • Arrays.equal () - vérifie si le tableau de caractères triés est égal

Si les tableaux triés sont égaux, les chaînes sont des anagrammes.

Remarque : ici, l'exemple est sensible à la casse. Autrement dit, Java et java ne sont pas des anagrammes. C'est parce que le Arrays.sort()compare deux caractères avec la valeur ASCII. Et, la valeur ASCII de J et j sont différentes.

Exemple 2: prenez les entrées de chaîne des utilisateurs et vérifiez si les chaînes sont des anagrammes

 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(); ) )

Production

 Entrez la première chaîne: Race Entrez la deuxième chaîne: Care Race et Care sont des anagrammes.

Dans l'exemple ci-dessus, nous avons utilisé la classe Scanner pour prendre les entrées de l'utilisateur. Ici, nous avons vérifié si les chaînes fournies par les utilisateurs sont des anagrammes.

Articles intéressants...