Merhabalar,
Türkçe kaynaklarda bulunmayan Anagram kullanımını ve kodlarını sizlerle paylaşacağım ama önce anagram nedir ?
Anagram: 2 veya daha fazla kelimenin içerdiği harflerin birbiri ile aynı olup olmadığını ve kelime uzunluğunu ölçülmesine verilen addır. Daha doğrusu bizim projemiz bu işi yapıyor.
Örnek: ilk kelime=Emre ikinci kelime=Emir
Bu iki kelimede farklı kelimeler geçtiği için bunlar anagram değildir fakat
ilk kelime emre ikinci kelime erme
burada iki kelimenin harfleri ve harf sayısı aynı olduğu için bunlar anagram oluyor.
Sizler için hazırladığım Anagram Kontrol Yazılımı:
package AnagramOrnek;
import java.util.Arrays;
import javax.swing.JOptionPane;
//import javax.swing.JScrollPane;
//import javax.swing.JTextArea;
/**
*
* @author Emre ÇAPAN
*/
public class AnagramOrnek {
public static void main(String[] args) {
String s1= JOptionPane.showInputDialog("İlk kelimeyi girin"); //ilk kelimeyi alalım
String s2= JOptionPane.showInputDialog("İkinci kelimeyi girin"); //ikinci kelimeyi alalım
boolean al= AnagramKontrol(s1,s2); // AnagramKontrol metoduna 2 adet karşılaştırılacak kelime gönderiyoruz, gelen sonucu 0 veya 1 olarak "al " değişkenimize alıyoruz.
if (al) { // Eğer "al" değikeninde 1 varsa
JOptionPane.showMessageDialog(null, "Anagramdır");
}
else // "al" değişkeni 0 ise
JOptionPane.showMessageDialog(null, "Anagram Değildir");
}
public static boolean AnagramKontrol(String kelime1, String kelime2) {
char[] kelimeDizi1 = kelime1.replaceAll("[\s]", "").toCharArray();//ilk kelimedeki karakterleri temizle
char[] kelimeDizi2 = kelime2.replaceAll("[\s]", "").toCharArray();//ikinci kelimeyi temizle
Arrays.sort(kelimeDizi1);//ilk kelimedeki harfleri sırala
Arrays.sort(kelimeDizi2);//ikinci kelimedeki harfleri sırala
return Arrays.equals(kelimeDizi1, kelimeDizi2); //eşit ise 1 değil ise 0 döndür
}
}Esenlikle.
Emre