C# METİN İÇİNDE ARAMA
C# ile string işlemleri. Metin içinde arama yapmak. String.Compare, IndexOf ve LastIndexOf fonksiyonlarının kullanımı.
C# ile program yazımında bazen bir metin içerisinde başka bir metin, kelime, uzantı aramak zorunda kalabiliriz. C# programlama dili bunun için çözümler sunmuştur.
String.Compare Fonksiyonu
Bu çözümlerden birincisi string.compare fonksiyonudur. Bu fonksiyon iki değer alır.Birinci değeri aranacak olan ifade, ikinci değer ise ana metindir.
Bu fonksiyonun kullanımı genel olarak aşağıdaki gibidir.
int sonuç = String.Compare(aranandeger, anametin);
Eğer aranan değer bulunursa sonuç =- 1 olur.
Şayet aranan değer bulunamazsa sonuç = +1 olur.
İki değer birbirine eşit ise sonuç = 0 olur.
Yalnız bu fonksiyon aramaya 1. Karakterden itibaren başlamaktadır. “Yani sanatsal tasarım yazılım” ifadesi içerisinde ‘sal’ karakter grubunu aratırsak bulur fakat tas karakter grubunu bulamaz. ‘yaz’ kelimesini bulamazken, ‘lım’ karakter grubunubulur.
Aşağıda örnek kullanımı görülüyor.
private void button1_Click(object sender, EventArgs e)
{
string tekst1 = "";
string tekst2 = "";
int sonuc;
tekst1 = textBox1.Text;
tekst2 = textBox2.Text;
sonuc = String.Compare(tekst2, tekst1);
if(sonuc==-1)
{
MessageBox.Show(tekst2 + " Değeri var");
}
if(sonuc==1)
{
MessageBox.Show(tekst2 + " Değeri Yok");
}
if(sonuc==0)
{
MessageBox.Show("İki değer aynı");
}
}
IndexOf Fonksiyonu
İkinci fonksiyon; "IndexOf" fonksiyonudur. Bu fonksiyon daha kullanışlıdır.
Bu fonksiyon üç değer alır. Birinci değer aramaya kaçıncı karakterden itibaren başlanacağı yazılır. Tüm metinde aranacaksa buraya 0 yazılır. İkinci parametresi aranan değeri içerir, hangi değeri arayacaksak onu yazarız. Üçüncü parametresi kaçıncı karaktere kadar arama yapılacağını soruyor, eğer metinin sonuna kadar tüm kelimelerde arasın istiyorsak buraya da "metin.Length" gibi bir değer yazarız.
Bu fonksiyonun prototip kullanımı aşağıdaki gibidir.
string metin ="Bu metinde arama yapılır";
string ara = "arama";
int sonuç = metin.IndexOf(0, ara,metin.length);
Örnek Kullanımı
private void button2_Click(object sender, EventArgs e)
{
string metin = textBox1.Text;
string ara = textBox2.Text;
int sonuc;
sonuc = metin.IndexOf(ara,0, metin.Length-1);
if(sonuc==-1)
{
MessageBox.Show("Aradığınız Değer Bulunamadı");
}
else
{
MessageBox.Show("Aradığınız değer " + sonuc.ToString() + ". karakterden itibaren var");
}
}
LastIndexOf Fonksiyonu
Üçüncü bir yöntem LastIndexOf metodudur. Bu metot IndexOf metoduna benzer, yalnız IndexOf en baştaki karakterden itibaren arama yaparken, LastIndexOf metodu sondaki karakterden itibaren aramaya başlar.
Örnek Kullanımı
private void button3_Click(object sender, EventArgs e)
{
string metin = textBox1.Text;
string ara = textBox2.Text;
int sonuc;
sonuc = metin.LastIndexOf(ara, metin.Length-1, metin.Length);
if (sonuc == -1)
{
MessageBox.Show("Aradığınız Değer Bulunamadı");
}
else
{
MessageBox.Show("Aradığınız değer " + sonuc.ToString() + ". karakterden itibaren var");
}
}
SANATSAL BİLGİ
31/10/2016