Java-program för att kontrollera om två strängar är anagram

I det här exemplet kommer vi att kontrollera om två strängar är anagram eller inte i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java-sträng
  • Java Arrays

Två strängar sägs vara anagram om vi kan bilda en sträng genom att ordna tecken i en annan sträng. Till exempel Race and Care . Här kan vi bilda ras genom att ordna karaktärerna i Care.

Exempel 1: Java-program för att kontrollera om två strängar är anagram

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

Produktion

 Java och Vaaj är anagram.

I Java har vi två strängar som heter str1 och str2. Här kontrollerar vi om str1 och str2 är anagram.

Här,

  • str1.toCharArray () - konverterar strängen till en char-array
  • Arrays.sort () - sorterar båda char-arrays
  • Arrays.equal () - kontrollerar om den sorterade char-matrisen är lika

Om sorterade matriser är lika är strängarna anagram.

Obs! Här är exemplet skiftlägeskänsligt. Det vill säga Java och Java är inte anagram. Det beror på att man Arrays.sort()jämför två tecken med ASCII-värde. Och ASCII-värdet för J och j är olika.

Exempel 2: Ta strängingångar från användare och kontrollera om strängarna är anagram

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

Produktion

 Ange första sträng: Race Ange andra sträng: Care Race och Care är anagram.

I exemplet ovan har vi använt Scanner-klassen för att ta in input från användaren. Här kontrollerade vi om strängarna från användarna är anagram.

Intressanta artiklar...