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.