26 Şubat 2016 Cuma

Metindeki Harflerin Sayısını Bulma

  Bu yazımızda bir metnin içinde geçen harflerin sayısını bulmaya çalışacağız.
Algoritma şöyle çalışmaktadır.
  İlk olarak metnin içindeki harf dışındaki karakterleri ayrıştırıyoruz. Bu metin içinde kaç farklı harf var ise onları buldurup farklı harf sayısı kadar dizi oluşturuyoruz.
  Sonra algoritmanın ana kısmına geçiyoruz yani metnin ayrıştırılmış tüm karakterlerini birbir bakarak kontrol ediyoruz. Metnin tüm karakterlerini kontrol ettiğimizden aynı karakteri tekrar yazmamak için dizimiz içinde o an kontrol edilen karakterin olup olmadığına bakıyoruz eğer yoksa yeni harf nesnesi oluşturup onu dizimize ekliyoruz.
  Bütün karakterler kontrol edildikten sonra dizimizi yazdırıyoruz.Yazdırırken metnin içindeki sıraya
göre yazdırılıyor.

Örnek bir metin ve sonucu şöyledir.
Bir cümle giriniz...
Bu bir deneme yazısıdır.
B -> 1
u -> 1
b -> 1
i -> 1
r -> 2
d -> 2
e -> 3
n -> 1
m -> 1
y -> 1
a -> 1
z -> 1
ı -> 3
s -> 1

Main metodu ve ana metodu koydum diğerlerini github adresinde bulabilirsiniz.


 public static void main(String[] args) {
        Harf harfDizisi[] = null;
        String cumlemiz = "";
        
        cumlemiz = cumleyiAl();

        harfDizisi = harfSay(cumlemiz);

        ciktiVer(harfDizisi);
    }

public static Harf[] harfSay(String cumle) {
        Harf harfDizisi[] = null;
        int farkliHarfSayisi = 0;
        int sayac = 0;

        farkliHarfSayisi = kacFarkliHarfVarKontrolEt(cumle);
        //harf dizimizi burada oluşturuyoruz
        harfDizisi = new Harf[farkliHarfSayisi];

        // cumlenin tum harflerini tektek konrol ediyoruz
        for (int i = 0; i < cumle.length(); i++) {
            char kontrolEdilecekHarf = cumle.charAt(i);

            int ayniHarfSayisi = ayniHarfSaysiniBul(cumle, kontrolEdilecekHarf);

            //aynı harften yok baska bir harf buyuzden dizimize ekliyoruz
            if (!aynisindanHarfDizisindeVarMi(harfDizisi, kontrolEdilecekHarf)) {
                //diziye yeni harf oluşturup ekliyoruz
                harfDizisi[sayac] = new Harf(kontrolEdilecekHarf, ayniHarfSayisi);
                sayac++;
            }
        }

        return harfDizisi;
    }


Kodlara ulaşmak için github adresine gidin