İki dizenin anagram olup olmadığını kontrol etmek için Java Programı

Bu örnekte, Java'da iki dizenin anagram olup olmadığını kontrol edeceğiz.

Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:

  • Java Dizesi
  • Java Dizileri

Başka bir dizgenin karakterlerini düzenleyerek bir dizi oluşturabilirsek, iki dizenin anagram olduğu söylenir. Örneğin, Irk ve Bakım . Burada Care karakterlerini düzenleyerek Irk oluşturabiliriz.

Örnek 1: İki dizenin anagram olup olmadığını kontrol eden Java programı

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

Çıktı

 Java ve Vaaj anagramlardır.

Java'da str1 ve str2 adında iki dizimiz var. Burada str1 ve str2'nin anagram olup olmadığını kontrol ediyoruz.

Buraya,

  • str1.toCharArray () - dizeyi bir char dizisine dönüştürür
  • Arrays.sort () - her iki karakter dizisini de sıralar
  • Arrays.equal () - sıralanan karakter dizisinin eşit olup olmadığını kontrol eder

Sıralanmış diziler eşitse, dizeler anagramdır.

Not : Buradaki örnek büyük / küçük harfe duyarlıdır. Yani, Java ve java anagram değildir. Bunun nedeni, Arrays.sort()iki karakteri ASCII değeriyle karşılaştırmasıdır. Ve J ve j'nin ASCII değeri farklıdır.

Örnek 2: Kullanıcılardan dize girişleri alın ve dizelerin anagram olup olmadığını kontrol edin

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

Çıktı

 İlk Dizgiyi Girin: Yarış İkinci Diziyi girin: Bakım Yarış ve Bakım anagramdır.

Yukarıdaki örnekte, kullanıcıdan girdi almak için Scanner sınıfını kullandık. Burada kullanıcılar tarafından sağlanan dizelerin anagram olup olmadığını kontrol ettik.

Ilginç makaleler...