Program Java ke kontrole, zda jsou dva řetězce přesmyčky

V tomto příkladu zkontrolujeme, zda jsou dva řetězce v jazyce Java přesmyčky nebo ne.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Řetězec Java
  • Java pole

Dva řetězce jsou považovány za přesmyčky, pokud můžeme vytvořit jeden řetězec uspořádáním znaků jiného řetězce. Například Race and Care . Tady můžeme vytvořit Rasu uspořádáním postav Care.

Příklad 1: Program Java ke kontrole, zda jsou dva řetězce 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ýstup

 Java a Vaaj jsou přesmyčky.

V Javě máme dva řetězce s názvem str1 a str2. Zde kontrolujeme, zda jsou str1 a str2 anagramy.

Tady,

  • str1.toCharArray () - převede řetězec na char pole
  • Arrays.sort () - seřadí obě char pole
  • Arrays.equal () - zkontroluje, zda je seřazené pole char stejné

Pokud jsou seřazená pole stejná, pak řetězce jsou přesmyčky.

Poznámka : V tomto příkladu se rozlišují velká a malá písmena. To znamená, že Java a Java nejsou přesmyčky. Je to proto, že Arrays.sort()porovnává dva znaky s hodnotou ASCII. A hodnota ASCII J a j jsou různé.

Příklad 2: Vezměte řetězcové vstupy od uživatelů a zkontrolujte, zda jsou řetězce přesmyčky

 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ýstup

 Zadejte první řetězec: Race Zadejte druhý řetězec: Care Race a Care jsou přesmyčky.

Ve výše uvedeném příkladu jsme k převzetí vstupu od uživatele použili třídu Scanner. Zde jsme zkontrolovali, zda jsou řetězce poskytované uživateli anagram.

Zajímavé články...