Java program annak ellenőrzésére, hogy két karaktersorozat anagramma-e

Ebben a példában ellenőrizni fogjuk, hogy két karakterlánc van-e anagrammal vagy sem Java-ban.

A példa megértéséhez ismernie kell a következő Java programozási témákat:

  • Java karakterlánc
  • Java tömbök

Két húrról azt mondják, hogy anagramma, ha egy húrot úgy alakíthatunk ki, hogy elrendezzük egy másik karakter karaktereit. Például a Race and Care . Itt alakíthatjuk a Race-t a Care karaktereinek elrendezésével.

1. példa: Java program annak ellenőrzésére, hogy két karakterlánc-e anagramma

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

Kimenet

 Java és Vaaj anagramma.

A Java-ban két karakterláncunk van: str1 és str2. Itt ellenőrizzük, hogy az str1 és az str2 anagrammák-e.

Itt,

  • str1.toCharArray () - a karakterláncot char tömbgé alakítja
  • Tömbök.sort () - mindkét karaktertömböt rendezi
  • Arrays.equal () - ellenőrzi, hogy a rendezett char tömb egyenlő-e

Ha a rendezett tömbök egyenlőek, akkor a húrok anagrammaak.

Megjegyzés : Itt a példa megkülönbözteti a kis- és nagybetűket. Vagyis a Java és a java nem anagrammák. Ez azért van, mert Arrays.sort()összehasonlítja a két karaktert az ASCII értékkel. És J és j ASCII értéke különbözik.

2. példa: Vegye ki a karakterlánc bemeneteket a felhasználóktól, és ellenőrizze, hogy a karakterláncok anagramma-e

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

Kimenet

 Írja be az első karakterláncot: Race Írja be a második karakterláncot: Care Race és a Care anagramma.

A fenti példában a Scanner osztályt használtuk arra, hogy bemenetet vegyen fel a felhasználótól. Itt ellenőriztük, hogy a felhasználók által megadott karakterláncok anagramma-e.

érdekes cikkek...