C# Dersleri 39 - IndexOf, Contains ve Trim

     C# dilinde IndexOf methodu, bir string değer içindeki bir karakter veya karakter grubunun indexini döndürür. Bu değer int tipindedir. String içindeki ilk karakterin indexi 0'dır. Contains methodu, bir string içinde bir substringin bulunup bulunmadığını kontrol etmemizi sağlar. Örneğin "name.Contains("Emre")" kod cümlesi, name değişkeninde "Emre" var ise true, yok ise false değerini döndürecektir.     

private void btnClick_Click(object sender, EventArgs e)
{
    string name = "Emre Yıldırım";
    int index = name.IndexOf(" ");
}

     Boşluk karakterinin index değerini alıyoruz. "index" değişkenine 4 değeri atanacaktır.

     Trim methodu, bir string değerin başındaki ve sonundaki boşluk(space) karakterlerini siler.      

private void btnClick_Click(object sender, EventArgs e)
{
    string name = "       Emre Yıldırım  ";
    name = name.Trim();
}

     Bu işlem sonucunda name değişkenine, başında ve sonunda boşluk olmadan "Emre Yıldırım" değeri atanmış olur. Kullanıcıdan veri alınan uygulamalarda Trim methodunu kullanmak, kullanıcıların yanlışlıkla bıraktığı boşluk ve tab karakterlerini sileceği için data kirliliğine engel olur. 

     Bir Windows form uygulaması oluşturalım. Bu uygulamada kullanıcının girdiği isim-soyisim değerini, indexOf ve substring kullanarak iki farklı değişkene atacağız. Ayrıca kullanıcının girdiği email adresinin geçerli olup olmadığını kontrol edeceğiz. Formun son hali aşağıdaki gibi olmalı :

C# Substring Contains Örneği

     Kullanıcı "Ad Soyad :" Textbox'ına, adını ve soyadını arada boşluk bırakarak girmeli. Biz de boşluk karakterini yakalayarak adını ve soyadını ayıracağız. Ayrıca "E-mail Adresi : " Textbox'ına girdiği değeri kontrol edeceğiz. Eğer girdiği email adresinde "@" karakteri varsa, "@" karakteri ilk karakter değilse ve sonu ".com" ile bitiyorsa emaili doğrulanmış kabul edeceğiz ve sonuçları "Doğrulanmış Veri" Groupbox'ındaki alanlara yazacağız.

private void btnVerify_Click(object sender, EventArgs e)

    string fullName = txtFullName.Text;
    fullName = fullName.Trim();
    string email = txtMail.Text.Trim();
    string firstName = string.Empty;
    string lastName = string.Empty;

    if (!fullName.Contains(" "))
    {
        //ad-soyad alanında boşluk karakteri yok ise 
        MessageBox.Show("Adınız ile soyadınız arasında boşluk olmalı");
        return//bitir
    }
    else
    { 
        firstName = fullName.Substring(0, fullName.IndexOf(" "));   //başlangıçtan boşluk karakterine kadar olan değeri al
        lastName = fullName.Substring(fullName.IndexOf(" ") + 1);   //boşluktan bir sonraki karakterden itibaren al
    }

    //ad soyad kontrolü tamamlandı. email kontrolüne geç 
    if (email.Contains("@") && email.IndexOf("@") > 0 && email.Contains(".com"))
    {
        //email @ içeriyorsa, @ ilk karakter değilse ve .com içeriyorsa
        txtFirstName.Text = firstName;
        txtLastName.Text = lastName;
        txtVerifiedMail.Text = email;
    }
    else
    {
        //email gerekli koşulları sağlamıyor
        MessageBox.Show("E-maili kontrol ediniz");
        return//bitir
    }
}

     Önce Contains methodunu kullanarak ad soyad inputunun boşluk karakteri içerip içermediğini kontrol ediyoruz. Boşluk karakteri yoksa hata verip uygulamayı sonlandırıyoruz. Boşluk varsa, boşluktan öncesini firstName isimli değişkene, sonrasını lastName isimli değişkene atıyoruz. Daha sonra email inputunun değerinde "@" var mı, var ise "@" indexi 0'dan büyük mü, ve ".com" içeriyor mu kontrolleri yapıyoruz. Bunların hepsi sağlanıyorsa sağ taraftaki Groupbox'taki Textbox'lara sonuçları yazdırıyoruz. Tüm değerler istenen gibiyse eğer sonuç aşağıdaki gibi oluyor :

C# Substring örnek sonucu

     Projeyi buradan indirebilirsiniz.

YORUMLAR
Anonim
Ağustos 25, 2019 16:04
İşime yaradı çok teşekkür ederim
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f