Program Java na kontrolu, či sú dva reťazce anagramom

V tomto príklade skontrolujeme, či sú dva reťazce v jazyku Java anagram alebo nie.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Java String
  • Java polia

O dvoch reťazcoch sa hovorí, že sú anagramy, ak môžeme vytvoriť jeden reťazec usporiadaním znakov druhého reťazca. Napríklad Race and Care . Tu môžeme formovať Rasu usporiadaním postáv Care.

Príklad 1: Program Java na kontrolu, či sú dva reťazce anagramy

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

Výkon

 Java a Vaaj sú anagramy.

V Jave máme dva reťazce s názvom str1 a str2. Tu kontrolujeme, či str1 a str2 sú anagramy.

Tu,

  • str1.toCharArray () - prevádza reťazec na char pole
  • Arrays.sort () - zoradí obe char polia
  • Arrays.equal () - skontroluje, či je zoradené char pole rovnaké

Ak sú zoradené polia rovnaké, potom sú reťazce anagramom.

Poznámka : V tomto príklade sa rozlišujú veľké a malé písmená. To znamená, že Java a Java nie sú anagramy. Je to preto, lebo Arrays.sort()porovnáva dva znaky s hodnotou ASCII. A hodnota ASCII J a j sú rôzne.

Príklad 2: Vezmite reťazcové vstupy od používateľov a skontrolujte, či sú reťazce 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(); ) )

Výkon

 Zadajte prvý reťazec: Race Zadajte druhý reťazec: Care Race a Care sú anagramy.

Vo vyššie uvedenom príklade sme na prevzatie vstupu od používateľa použili triedu Scanner. Tu sme skontrolovali, či sú reťazce poskytované používateľmi anagram.

Zaujímavé články...