
Bugün de dünkü dersin devamı olan string arama operatörlerinden bahsedeceğiz. String operatörleri sizin uygulamalarınızda cümle işlemenize olanak sağlar, örneğin bir metin girdisinde program o metni okuyabilir ona göre değerlendirme yapabilir ve ilişkilendirme yapabilir. Bu sayede sizin algoritmalarınız istediğiniz davranışları sergileyebilir.
İlerde geçeceğimiz WinForm uygulamalarında ve otomasyon sistemlerinde bundan kolaylıkla yararlanmanız mümkündür.
Genele itibariyle string ifadeleri dışarıdan alınan ve verilen değerler için kullanırız. String değişkenleri programı kullanan kişiyle program arasındaki köprü görevi görmektedir. Veri tabanına aldığınız string değişkenler de benzersiz olduğu için sizin şifreleriniz daha sağlam bir olmaktadır.
Eğer ki biraz sayısal elektronik bilginiz varsa string değişkenlerin sadece insanlar için üretilen bir dil olduğunu düşünebilirsiniz. Çünkü bu değişkenlerin makine dilinde bir anlamı yoktur, biz makineye anlamlandırıyoruz ve uygun sayısal bir şekilde yapılmaktadır bu.
C# dili öğrenme denemelerinde bugün string işlemlerinden arama operatörlerinin ne olduğunun ve nasıl kullanıldığı anlatılacaktır.
Contains Metodu
Programlama dilleri genel itibariyle İngilizce komutlar ile çalıştırılmakta ve builder dediğimiz derleyiciler bizim yazdığımız komutları makinenin anlayabileceği sayısal değerlere çevirmektedir. Tabi her builderin sayısal değerlere çevirecek diye bir zorunluluk bulunmamaktadır. Sonuç itibariyle çalıştıracağı işletim sistemine göre kodlanır, bu sebeple bir sürü platform ve bir sürü programlama dili mevcut.
Esas olarak demek istediğim Contains de bir ingilizce komut kelime anlamına bakacak olursanız bunun anlamı içermek olduğunun farkına varırsınız.
Bu komutunun kullanma amacı verilen bir string değerinin içeriğinde bir kelime bulunup bulunmadığına bakıp size cevap verir.
Verdiği cevap evet veya hayır mantıkta olup diğer şekilde “true” ya da “false” biçimindedir.
Bunun üzerine bir örnek yapacak olursak, bir metin girilsin metnin içinde bir kelime aransın eğer ki varsa bize program “bu ifadeyi içermektedir” diye yanıt versin.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Console.WriteLine("Lütfen bir metin giriniz."); string text = Console.ReadLine(); // Metin string değere atama text = text + text.ToLower()+text.ToUpper(); // Büyük küçük harflerin de eklenmesi Console.WriteLine("Aranaccak kelime giriniz"); string aranacak = Console.ReadLine(); // Aranmak istenen ifadeyi atama if (text.Contains(aranacak)==true) // Şartımız { Console.WriteLine("Bu ifadeyi içermektedir"); } else // Şart sağlanmaması durumunda { Console.WriteLine("Öyle bir ifade içermemektedir"); } |
Çok zorlaştırmadan anlatmak istedim. Tabi ki siz kendiniz örneklerle çeşitlendirebilirsiniz. Özellikle WinForm uygulamalarında işinize yarayacağını düşünüyorum.
İndexOf Metodu
Bu metot yapı görev itibariyle Contains metodu ile aynı bir biçimde kullanılabilir. Buradaki görev cevabı ” true” ve “false” değil de “-1” ve “0”olarak cevap vermektedir.
1 2 3 4 |
if (text.IndexOf(aranacak)==0) // Burada şart oluştururken yukarıdaki örnekte olduğu gibi kullanabiliriz { Console.WriteLine("Bu ifadeyi içermektedir"); } |
text.IndexOf(aranacak)==0 olduğu durumda text string ifadesinde aranacak ifadenin bulunduğu anlamına gelmektedir.
Eğer ki bu değer -1 eşit ise aranan ifadenin text string ifadesinde bulunmadığı saptandığı anlamına gelmektedir.
Substring Metodu
Bununla beraber sizin kullanabileceğiniz Substring diye bir arama operatörü mevcuttur.
Bu arama operatörü bulunan kelime veya ifadenin konumu ile ilgili bize kolay bir şekilde bilgi vermektedir. Yani bulunan kelimeden sonraki bizim belirlediğimiz karakter sayısına kadar belirlememize ve bulmamıza olanak sağlar.
Aslında bu substring verilen string ifadesinin baştan 0 başlayarak son kısma kadar karakter sayısını saymasıdır.
Yani şöyle siz bir cümle içinde bir ifadeyi aramaya kalktığınızda IndexOf metodu ile onun sayısal olarak kaçıncı karakterden itibaren başladığını saptamış olursunuz.
Substring ise başlangıç sayısından sizin istediğiniz karakter sayısına kadar sizin için ayırmanıza olarak sağlar.
Bir örnek de bunun için inceleyecek olursak aşağıdaki gibi olacaktır .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Console.WriteLine("Lütfen bir metin giriniz."); string text = Console.ReadLine(); Console.WriteLine("Aranaccak kelime giriniz"); string aranacak = Console.ReadLine(); int bulunan = text.IndexOf(aranacak); if (bulunan!=-1) { string cıktı = text.Substring(bulunan, text.Length - bulunan); Console.WriteLine("Bu ifadeyi içermektedir"); Console.WriteLine(cıktı); } else { Console.WriteLine("Öyle bir ifade içermemektedir"); } |
Örnekte girdiğiniz paragrafta bir kelime aratacaksanız o kelimeden sonraki tüm karakterleri göstermektedir.
Anlamadığınız bir durum olması halinde sorabilir, mail atabilir sosyal medyada iletişim kurabilirsiniz. Elimden geldiğince dilim döndüğünce size yardımcı olmaya çalışırım.
Programlama dillerinde ingilizcenin önemini vurgular öğrenmenizi tavsiye ederim.
Takipte kalın iyi kalın. 🙂