C# String Temizleme (Clean String) Fonksiyonu

17 Kas 2016 · 2 dk okuma süresi

Bugün neredeyse her uygulamada gerekebilecek bir string temizleme(clean string) fonksiyonunu paylaşacağım. Bu fonksiyonu özellikle veritabanına veri eklerken verilerin düzenli olmasını ve verilerin kararlılığını sağlamak amacıyla kullanabiliriz.

Örneğin bir marka veya ürünleri tutan veritabanınızın olduğunu düşünün. Bu veritabanına girilecek marka veya ürünlerin içerisinde gereksiz tekrar eden boşlukların olmasını istemezsiniz. Bu durum kişinin adını veya soyadını girdiği durumlarda da geçerlidir.

Şimdi ilk olarak C# kütüphanesinin bize sunduğu hazır fonksiyonlardan yararlanarak bu işi en kısa şekilde halledebilecek kod bloklarından birini inceleyelim.

public static string cleanString(string inputStr)
{
  // Alttaki Regex sınfının Replace() fonksiyonu 3 parametre alıyor.
  // Birinci parametre: düzenlemek istediğiniz string
  // İkinci parametre: Metinde aranan kalıp(pattern). Burada \s+ kalıbı ile tekrar eden boşluklar kastediliyor
  // Üçüncü parametre: İkinci parametrede belirlenen kalıpla eşleşen karakterlerin hangi karakter ile değişeceğini kastediyor.

  return System.Text.RegularExpressions.Regex.Replace(inputStr, @"\s+", " ").Trim();
}

Bu fonksiyon öncelikle System.Text.RegularExpressions Namespace içerisinde bulunan Regex sınıfının Replace() fonksiyonu kullanarak tekrar eden boşlukları tek bir boşluk karakterine dönüştürmüş. Ardından String sınıfının fonksiyonu olan Trim() fonksiyonu kullanılarak Regex.Replace() fonksiyonunun döndürdüğü değerin içerisinde varsa başındaki ve sonundaki boşluklar temizlenmiş. Son durumda fonksiyonun döndürdüğü string tipindeki değer düzenli ve gereksiz boşluklardan arınmış bir yapıya sahip oluyor.

Şimdi gelelim kendi yazdığım ve aslında bir şeyi öğrenmenin etkili olduğu yöntemlerden birine. Şimdi diyelim ki üstte C# dilinin bize sunduğu hazır fonksiyonlar olmasa biz bu işi nasıl yapacaktık veya diyelim başka bir programlama dilinde bu işlemi yapmak istiyoruz ve bu kullandığımız dil C# gibi bize böyle bir kolaylık sağlamamış. O zaman biraz kolları sıvıyoruz ve kendi fonksiyonumuzu yazıyoruz. Altta kendi yazdığım kodu paylaştım. Normalde bu kodu C++ dili için yazmıştım ve altta olduğundan azıcık daha uzun olmuştu. O kodu C# için uyarlayıp burada sizlerle paylaşmak istedim.

Şimdi ise kodu inceleyelim:

Kodların açıklamaları üstlerinde mevcut. Dilerseniz bu kodu daha da pratik ve kısa hale getirerek geliştirebilirsiniz. İyi çalışmalar  :-)