Програма Java за проверка дали два низа са анаграми

В този пример ще проверим дали два низа са анаграмни или не в Java.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:

  • Java String
  • Java масиви

Казват се, че два струни са анаграма, ако можем да образуваме един низ, като подредим символите на друг низ. Например, раса и грижи . Тук можем да формираме състезание, като подредим героите на 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 и Vaaj са анаграми.

В Java имаме два низа на име str1 и str2. Тук проверяваме дали str1 и str2 са анаграми.

Тук,

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

Ако сортираните масиви са равни, тогава низовете са анаграми.

Забележка : Тук примерът е чувствителен към малки и големи букви. Тоест 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, за да вземем данни от потребителя. Тук проверихме дали низовете, предоставени от потребителите, са анаграми.

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