Asp.net ile Harf, Kelime, Cümle Sayma


Asp.net 'de bir Web projesi oluşturarak bir WebForm ekleyiniz. WebForm üzerine bir TextBox nesnesi bir tane ListBox nesnesi, 3 tane de Button ekliyoruz.

Nesne Adı Özellik Değer
TextBox TextMode Mutiline
TextBox ID txtParagraf
ListBox ID LbSonuc
Button ID btnHarfBul
Button Text Harf Bul
Button ID btnKelimeBul
Button Text Kelime Bul
Button ID btnCumleBul
Button Text Cümle Bul

Yukarıdaki gibi nesnelerin özelliklerini ayarlıyoruz.



Cümle Bulma olayında Nokta(.), Ünlem(!), Soru İşareti(?) ve Üç nokta(...) işaretlerine bakıyoruz.  Tabi burada kısaltmalar geçtiği zaman, örneğin Dr., Ast. Av. Müh. 2. 3. gibi bunlarda nokta kullanıldığından bir cümleymiş gibi algılayabilir. Kısaltmaları içeren bir dizi oluşturup kontrol etmek gerekir, şimdilik cümlede kısaltmalar olmadığını farz ediyoruz.

 protected void btnCumle_Click(object sender, EventArgs e)
    {
      lbSonuc.Items.Clear();
        int CumleSayac = 0;
        string metin = txtParagraf.Text.Trim();
 
        //cümle ., !, ?, ... ile biter
        lbSonuc.Items.Add("Uzunluk :"+metin.Length);
 
       // İlk karakterden başlayıp tüm metni dolaşıyoruz.
        for(int i=0;i<metin.Length; i++)
        {
           lbSonuc.Items.Add(metin[i].ToString());
           if (i <= (metin.Length - 3))
           {
 
               if (i>=2)
               {
                   if (metin[i - 1] != '.')
                   {
                       if (metin[i] == '.' && metin[i + 1] == '.' && metin[i + 2] == '.')
                       {
                           CumleSayac++;
                          lbSonuc.Items.Add(i.ToString());
                       }
                       else if (metin[i]=='.')
                       {
                           CumleSayac++;
                          lbSonuc.Items.Add(i.ToString());
                       }
                      
                   }
               }
 
           }
           if (metin[i] == '?')
           {
               CumleSayac++;
               lbSonuc.Items.Add(i.ToString());
           }
 
           if (metin[i] == '!')
           {
               CumleSayac++;
               lbSonuc.Items.Add(i.ToString());
           }
                  
          
 
        }
        lbSonuc.Items.Add("Cümle Sayısı:" + CumleSayac);
    }

Kelime Bul butonuna tıklayıp aşağıdaki kodu yazıyoruz, paragrafta geçen boşluk sayısının bir fazlası kelime sayısını verecektir.

 protected void btnKelime_Click(object sender, EventArgs e)
    {
         lbSonuc.Items.Clear();
         int KelimeSayac = 0;
         string metin = txtParagraf.Text.Trim();
 
         for (int i = 0; i < metin.Length; i++)
         {
             if (metin[i] == ' ')
                 KelimeSayac++;
         }
        lbSonuc.Items.Add("Kelime Sayısı:"+(KelimeSayac+1).ToString());
    }

 
Harf sayısını saymak için de Harf Bul düğmesine tıklayıp aşağıdaki kodları yazıyoruz.  
if  (metin[i]>='A' && metin[i]<='Z') satırı ile A ile Z arasındaki büyük İngilizce harfler,  if    (metin[i] >= 'a' && metin[i] <= 'z') satırı ile a ile z arasındaki küçük İngilizce harfler daha sonra da Türkçe karakterleri (Ç,ç, Ş, ş, Ü, ü, Ö, ö, İ, ı) var mı diye if satırları ile kontrol ediyoruz.

 
protected void btnHarf_Click(object sender, EventArgs e)
    {
        //lbSonuc.Items.Clear();
        int HarfSayac = 0;
        string metin = txtParagraf.Text.Trim();
 
        for (int i = 0; i < metin.Length; i++)
        {
            if (
                (metin[i]>='A' && metin[i]<='Z') ||
                (metin[i] >= 'a' && metin[i] <= 'z') ||
                (metin[i] == 'Ş')|| (metin[i] == 'ş') ||
                (metin[i] == 'Ç') || (metin[i] == 'ç') ||
                (metin[i] == 'Ğ') || (metin[i] == 'ğ') ||
                (metin[i] == 'İ') || (metin[i] == 'ı') ||
                (metin[i] == 'Ü') ||  (metin[i] == 'ü') ||
                (metin[i] == 'Ö') ||  (metin[i] == 'ö')
               
                )
 
                HarfSayac++;
        }
        lbSonuc.Items.Add(HarfSayac.ToString());
 
    }


Mutlu Kodlamalar,
Oğuzhan TAŞ
Aralık 2016
 
Bookmark and Share