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.