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.