Metindeki Kelime Sayısını Bulma

Bir metindeki kelime sayısını nasıl buluruz diyor diye kendinize hiç sorduğunuz oldu mu?

Bir metindeki kelime sayısını nasıl buluruz diyor diye kendinize hiç sorduğunuz oldu mu? :) Sizin olmadıysa da benim oldu. Eğer böyle bir düşünceniz varsa bu uygulamamızda nasıl bulacağımızı anlatıyorum. Bu örnekte de Substring metodunu kullanacağız. Substring metodunun kullanımını bilmiyorsanız Substring Metodunun Kullanımı dersimde bunu ayrıntılı olarak anlatmıştım. Mid metodumuz da var, ama bu biraz eski, yenilik iyidir deyip devam ediyoruz.

Algoritmamız; metindeki boşlukları saymak olucak. Bizim algoritmamız o kadar gelişmiş bir şey değil, ama çalışan bir algoritma olduğu kesin. Demek istediğim kelimeler arasında 1'den fazla boşluk varsa sapıtabilir. Bu örneğinde daha gelişmiş halini geliştirme fırsatım olmadı. Şimdi kodlarımız konuşsun:

Kodlar:


int kelimesayisi = 1;

int bul = 1;

// Metni metin değişkenine atıyoruz. Trim ile de başındaki ve sonundaki boşlukları kaldırıyoruz.

string metin = "Bu metindeki kaç tane kelime kullanılmıştır.".Trim();

// Burada döngümüzü kuruyoruz. 

// Döngümüz bul'un ilk değeri 1 olduğu için 1'den dönmeye başlayacak.

// metin.Length ile de metindeki karakter sayısını alıyoruz. 

// bul değişkeni her döndüğünde değeri 1 artar(bul++) metindeki karakter sayından küçük olduğu sürece döngümüz dönmeye devam edecektir. 

for (; bul < metin.Length; bul++)

{

     // Metnin her karakterini kontol edip boşluk arıyoruz. Her boşluk bir kelimedir.

     // Boşluk buldukca kelime sayısını 1 artırıyoruz.

     if (metin.Substring(bul, 1) == " ") kelimesayisi += 1;

}

// En son olarak da bulunan kelime sayısını kullanıcıya gösteriyoruz.

MessageBox.Show(kelimesayisi.ToString());



Bu makalemiz bu kadar. Gelecek makalelerde görüşmek dileğiyle...
  • Etiketler;
Yorum Yaz

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

Derste bu konudayız çok güzel bi site tebrikLer :gul:
kelime sayısı için bana göre sadece boşluk yeteli değil arkadaşlar =) özellikle programlama bölümünde okuyanlar için virgül(,) nokta(.) ünlem(!) gibi işaretleride almaları gerekebilir =) çoğumuz virgülden noktadadan yada diğer işaretlerden sonra boşluk koymayabiliyoruz =) açıkçası öğretmen olsam bu tarz bir uygulama ile gelene extra puan verirdim ben =)
mantık olarak bu kadarı kelime saymak için yetersiz kalıyor. magnet in de bahsettiği gibi nokta virgül gibi ünlem işaretleri de sayılmalı. ayrıca bu kodlara göre her boşlugu sayacak. yani iki boşuk yanyana geldiği zamanda bunu fazladan bi kelime gibi saymış olucak ki bu durumda işlem yanlış olur. bunu onlemek için koşulumuza ikinci karakterin boşluga eşit olmaması koşulunu verebiliriz ve aynı işlemi diğer noktalama işaretleri içinde kullanabiliriz. // int adet = 0; //string a = textBox1.Text.Trim().TrimStart(); //for (int i = 0; i < a.Length; i++) // if ((a[i] == ' ') && (a[i + 1] != ' ')) // adet++;
merhabalar arkadaşlar. önerileriniz gerçekten çok iyi. ben zamanında en basit haliyle yapmıştım. gelişime açık bi uygulama :) zamanım olursa ve unutmazsam daha gelişmişini yazıp paylaşırım. üniversitede ne kadar çok boş vaktim olsada ilgilenemiyorum. iyi çalışmalar...

Yukarı Git