Program w języku Java do sprawdzania, czy dwa ciągi są anagramami

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.

Interesujące artykuły...