Програма Java для перевірки, чи два рядки є анаграмами

У цьому прикладі ми перевіримо, чи є два рядки анаграма чи ні в Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Рядок Java
  • Масиви Java

Два рядки називаються анаграмами, якщо ми можемо сформувати один рядок, розташувавши символи іншого рядка. Наприклад, перегони та турбота . Тут ми можемо сформувати гонку, розташувавши персонажів Догляду.

Приклад 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 і Vaaj - це анаграми.

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

Вихідні дані

 Введіть перший рядок: гонка Введіть другий рядок: догляд за гонкою та турботою є анаграмою.

У наведеному вище прикладі ми використовували клас Scanner для отримання вхідних даних від користувача. Тут ми перевірили, чи є рядки, надані користувачами, анаграмними.

Цікаві статті...