Java-programma om te controleren of twee strings anagram zijn

In dit voorbeeld zullen we controleren of twee strings anagram zijn of niet in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-tekenreeks
  • Java-arrays

Van twee strings wordt gezegd dat ze anagram zijn als we een string kunnen vormen door de karakters van een andere string te rangschikken. Bijvoorbeeld Race and Care . Hier kunnen we Race vormen door de karakters van Care te ordenen.

Voorbeeld 1: Java-programma om te controleren of twee strings anagrammen zijn

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

Uitvoer

 Java en Vaaj zijn anagram.

In Java hebben we twee strings genaamd str1 en str2. Hier controleren we of str1 en str2 anagrammen zijn.

Hier,

  • str1.toCharArray () - converteert de string naar een char-array
  • Arrays.sort () - sorteert beide char-arrays
  • Arrays.equal () - controleert of de gesorteerde char-array gelijk is

Als gesorteerde arrays gelijk zijn, zijn de strings anagram.

Opmerking : hier is het voorbeeld hoofdlettergevoelig. Dat wil zeggen, Java en java zijn geen anagrammen. Het is omdat het Arrays.sort()twee tekens vergelijkt met de ASCII-waarde. En de ASCII-waarde van J en j zijn verschillend.

Voorbeeld 2: neem stringinvoer van gebruikers en controleer of de strings anagram zijn

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

Uitvoer

 Voer de eerste String in: Race Voer de tweede String in: Care Race en Care zijn anagram.

In het bovenstaande voorbeeld hebben we de Scanner-klasse gebruikt om input van de gebruiker te krijgen. Hier hebben we gecontroleerd of de strings die door gebruikers worden aangeleverd anagram zijn.

Interessante artikelen...