Kelime bulma ile ilgili bir uygulama yaparken hangi harften kaç tane olduğunu bulma ile ilgili bir sorunla karşılaştım. İnternet’te konu ile ilgili bir arama yaptığımda doğru bir sonuç bulamayınca kendim bir algoritma belirleyip sorunu çözdüm.
Aşağıdaki kodlar bir metin dizisinde hangi sembolden kaç tane olduğunu göstermektedir. Eşsiz karakterleri tutmak için Java’da HashMap Koleksiyonunu kullandım. Eğer şartı ile karakter koleksiyonda yoksa koleksiyonu harfi ekleyip değerini 1 yaptım. Eğer harf koleksiyonda varsa harfin önceki değerini bir arttırıp harfin değerini güncelledim.
Ayrıca Örnek 2‘de istenilen karakterleri sayma yapan bir örnek mevcuttur. Secim içindeki karakterleri değiştirerek istediğiniz karakterlerin olup olmadığını kontrol edebilirsiniz.
Örnek 1 Java Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.HashMap; import java.util.Scanner; public class JavaOrnekleri { public static void main(String[] args) { String test="Merhaba Dünya yazısıdır 1231"; HashMap<Object, Object> hmap = new HashMap<Object, Object>(); for (int i = 0; i < test.length(); i++) { if(!hmap.containsKey(test.charAt(i))) { hmap.put(test.charAt(i),1); } else { int count= (int)hmap.get(test.charAt(i)); hmap.put(test.charAt(i),count+1); } } System.out.println(test); System.out.println(hmap); } } |
Çıktı:
Örnek 2 Java Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.util.HashMap; import java.util.Scanner; public class JavaOrnekleri { static String secim ="012345abcdefghijklmnopqrstuvwxyz"; public static void main(String[] args) { String test="Merhaba Dünya 1199"; HashMap<Object, Object> hmap = new HashMap<Object, Object>(); for (int i = 0; i < test.length(); i++) { if(secim.indexOf(test.charAt(i))>=0){ if(!hmap.containsKey(test.charAt(i))) { hmap.put(test.charAt(i),1); } else { int count= (int)hmap.get(test.charAt(i)); hmap.put(test.charAt(i),count+1); } } } System.out.println(test); System.out.println(hmap); } } |
Çıktı:
Dışardan verilen bir string değerinin içerdiği tüm farklı karakterlerin sadece bir kere bulunup bulunmadığını gösteren algoritma mantığu nedir peki? Cevaba göre de false yada true söylemesini istersek?