C#'ta Kelime Sayacı

Kelimeleri "space" "," "." "/" karakterleriyle kelimeleri programımıza saydırıyoruz. Programın çalışma mantığını birazdan göreceksiniz. [b]Formumuza eklenecekler:[/b]1 button,1 label textini silin saydırdıktan sonra kendı yazacaktır,1 de textbox

Kelimeleri "space" "," "." "/" karakterleriyle kelimeleri programımıza saydırıyoruz. Programın çalışma mantığını birazdan göreceksiniz.


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;



namespace kelimesayacı

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }



        private void button1_Click(object sender, EventArgs e)

        {



            string text = textBox1.Text;

//textBox1.Text'e text değişkenini atıyoruz.

            int sayac = 1;

//sayacı 1 den başlatıyoruz çünkü bir kelime girdiğimizde ekrana 1 yazdırsın 

//en son yazılan kelimeden sonrada boşluk , . gibi karakter koymamızada gerek kalmamış oluyor böylelikle

            foreach (char karakter in text)

            {

                if (karakter == Convert.ToChar(" "))

//karakterleri atıyoruz 

                {

//eğer metinler arası boşluk bırakılmışsa veyatta dediğimiz karakterlerden birini //koymuşsak her kelime arasına sayacımızı 1 arttırsın

                    sayac++;

                }

                else if (karakter==Convert.ToChar("/"))

                {

                    sayac++;

                }

                else if (karakter == Convert.ToChar(","))

                {

                    sayac++;

                }

                else if (karakter == Convert.ToChar("."))

                {

                    sayac++;

                }

             

                label2.Text = sayac + " tane kelime vardır..";

            } 

                 if (textBox1.Text =="")

//eğer textBox1'imize hiç metin girilmemişse...

                {

                    label2.Text = "0 tane kelime vardır..";

// 0 yazdırıyoruz

                }

        }

    }

}

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Güzel olmuş ama daha kısa yolu da vardı bunun:) Şöyleki : [code] char[] ayrac = { '.', ' ', ',' }; string[] kelimeSayisi = textBox1.Text.Split(ayrac); MessageBox.Show("[ " + kelimeSayisi.Length + " ] Adet Kelime vardır..."); [/code] İyi çalışmalar...
:) okulda hocam dan kendimi geliştirmelik istiyorum böyle her hafta bunu verdi çok uğraştım keşke önceden senin bu kodunu görebilseydim yapardım birde split ne işe yarıyor açıklayabilir misin?
ama hiç girmeyince 1 yazıyor :D
Evet 1 giriyor,ama sen kontrol edeceksin tabi textbox un içinin boş olması durumunu,ben sadece kelimelerini bulmanın yolunu yazdım sana :) Split verdiğin stringi (textBox1.Text) patantez içinde yazdığın char karaktere göre stringlere ayırır.Benim yukarıda yazdığım gibi char dizisi kullanabildiğin gibi.Sadece bir tane de kullanabilirsin.Şöyleki sadece virgül (,) olsun: textBox1.Text.Split(',') kullanacaksın.
teşekkürler bu bilgi için :)
ben de bu mantıkla yaptım... int sayac = 0, toplam = 0; string metin; char[] karakterler = { ' ', '/', ',' ,'.','?','*'}; private void button1_Click(object sender, EventArgs e) { metin = textBox1.Text; for (int i = 0; i < metin.Length; i++) { for (int k = 0; k < karakterler.Length; k++) { if (metin[i] == karakterler[k]) { sayac++; toplam = sayac; } } } MessageBox.Show(toplam.ToString() + " adet farklı karakter vardır."); sayac = 0; toplam = 0; } } }
Merhaba,benzer bir uygulamayı kendi sitemde kullanıyorum,kaynak kodlarını buradan inceleyebilirsiniz foreach (string word in words) { if (!hashTable.Contains(word)) hashTable.Add(word, 1); else hashTable[Word] = (int)hashTable[Word] + 1; } http://www.altanayan.com/index.php/kelime-sayaci/

Yukarı Git