Программа Java для проверки, являются ли две строки анаграммой

В этом примере мы проверим, являются ли две строки анаграммой или нет в Java.

Чтобы понять этот пример, вы должны знать следующие темы программирования Java:

  • Строка Java
  • Массивы Java

Две строки называются анаграммой, если мы можем сформировать одну строку, расположив символы другой строки. Например, Race and Care . Здесь мы можем сформировать Расу, расставив персонажей Заботы.

Пример 1: программа на Java для проверки, являются ли две строки анаграммами

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

Вывод

 Ява и Вадж - это анаграммы.

В Java у нас есть две строки с именами str1 и str2. Здесь мы проверяем, являются ли str1 и str2 анаграммами.

Вот,

  • str1.toCharArray () - преобразует строку в массив символов
  • Arrays.sort () - сортирует оба массива символов
  • Arrays.equal () - проверяет, равен ли отсортированный массив символов

Если отсортированные массивы равны, то строки являются анаграммой.

Примечание : здесь в примере учитывается регистр. То есть Java и java не анаграммы. Это потому, что Arrays.sort()сравнивает два символа со значением ASCII. И значения ASCII J и j различны.

Пример 2: Получите строковые данные от пользователей и проверьте, являются ли строки анаграммой

 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(); ) )

Вывод

 Введите первую строку: Race Введите вторую строку: Care Race и Care - анаграмма.

В приведенном выше примере мы использовали класс Scanner для ввода данных от пользователя. Здесь мы проверили, являются ли строки, предоставленные пользователями, анаграммой.

Интересные статьи...