W tym przykładzie sprawdzimy, czy dwa ciągi znaków są anagramami w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Ciąg Java
- Tablice Java
O dwóch łańcuchach mówi się, że są anagramem, jeśli możemy utworzyć jeden ciąg, układając znaki innego ciągu. Na przykład Race and Care . Tutaj możemy stworzyć Race, aranżując postacie Care.
Przykład 1: Program Java do sprawdzania, czy dwa łańcuchy są anagramami
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."); ) ) )
Wynik
Java i Vaaj to anagram.
W Javie mamy dwa ciągi o nazwach str1 i str2. Tutaj sprawdzamy, czy str1 i str2 są anagramami.
Tutaj,
- str1.toCharArray () - konwertuje ciąg znaków na tablicę znaków
- Arrays.sort () - sortuje obie tablice char
- Arrays.equal () - sprawdza, czy posortowana tablica znaków jest równa
Jeśli posortowane tablice są równe, to łańcuchy są anagramami.
Uwaga : w tym przykładzie rozróżniana jest wielkość liter. Oznacza to, że Java i java nie są anagramami. Dzieje się tak, ponieważ Arrays.sort()
porównuje dwa znaki z wartością ASCII. A wartości ASCII J i j są różne.
Przykład 2: Pobierz ciągi wejściowe od użytkowników i sprawdź, czy są one anagramami
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(); ) )
Wynik
Wprowadź pierwszy ciąg: wyścig Wprowadź drugi ciąg: wyścig opieki i opieka to anagram.
W powyższym przykładzie użyliśmy klasy Scanner do pobrania danych wejściowych od użytkownika. Tutaj sprawdziliśmy, czy ciągi dostarczone przez użytkowników to anagram.