Algoritmik Kod

  Split metodu seçilen metinde bulunan kelimeleri istediğimiz ayraca göre ayırıp bir string dizisinin içine aktaran metottur. Bu yazımızda ise split metodunu basit ve kolay bir şekilde yazmayı öğreneceğiz.

  Split Metodunu uygulayacağımız cümle “Algoritmik Kod ile birlikte gelişiyoruz” olsun. Split metodunu bu cümleye uyguladığımızda ve ayracımızı ‘  ‘(boşluk) olarak belirttiğimizde split metodu bizde [Algoritmik,Kod,ile,birlikte,gelişiyoruz] şeklinde bir dizi döndürecek.

string metin = "Algoritmik Kod ile birlikte gelişiyoruz";

   Hadi split metodumuzu oluşturup içini doldurmaya başlayalım. Metod bir string dizisi döndürecek, bir metin ve bir ayraç ifadesi alacak.

static string[] Splitimiz(string metin,char ayrac) 
{}

1. Adım: Cümledeki Kelime Sayısını Bulalım.

   Öncelikle kelime sayısını bulmamız gerek çünkü split metodu bir dizi döndürecek ve bu dizinin kaç elemanlı olduğunu baştan bilmemiz gerekiyor. O halde Split metodu kelimelerden oluşan bir dizi döndürecekse bizde bu dizinin kelime sayısını bilmeliyiz.

static string[] Splitimiz(string metin,char ayrac) 
{
  int elemanSayisi = 0;
  for (int i = 0; i < metin.Length; i++)
  {
      if (metin[i] == ' ')
      elemanSayisi++;
  }
  elemanSayisi++;
}

   Bir cümlenin kelime sayısı o cümledeki boşluk sayısından 1 fazladır. Örneğin “Algoritmik Kod ile birlikte gelişiyoruz” cümlesinde 4 boşluk varken 5(4+1)  kelime vardır. Bu nedenle boşluk sayısı bulunur ve 1 eklenir.

2. Adım: Metotta Döndürülecek Diziyi Oluşturalım.

static string[] Splitimiz(string metin,char ayrac) 
{
  int elemanSayisi = 0;
  for (int i = 0; i < metin.Length; i++)
  {
      if (metin[i] == ' ')
      elemanSayisi++;
  }
  elemanSayisi++;
  string[] kelimelerDizisi = new string[elemanSayisi];
}

 Şimdi az önce bulduğumuz kelime sayısına göre döndürülecek diziyi oluşturalım.

3. Adım: Cümledeki Kelimeleri Ayırıp Diziye Aktaralım

static string[] Splitimiz(string metin,char ayrac) 
{
    int sayac = 0;
    int elemanSayisi = 0;
    for (int i = 0; i < metin.Length; i++)
    {
        if (metin[i] == ' ')
        elemanSayisi++;
    }
    elemanSayisi++;
    string[] kelimelerDizisi = new string[elemanSayisi];
    for (int i = 0; i < metin.Length; i++)
    {
        if (metin[i] != ayrac )
        {
            kelimelerDizisi[sayac] += metin[i];
        }
        else
        {
            sayac++;
        }
    }
    return kelimelerDizisi;
}

  Öncelikle bir sayaç oluşturuyoruz. Bu sayaç az önce oluşturduğumuz dizinin eleman indexini temsil edecek. Yani sayaç 0 ise diziye ilk kelimeyi ekliyor olacağız. Ardından for döngüsüyle cümlenin içinde gezinip bulunduğumuz char eğer boşluk değilse sayaçtaki numaraya ait olan dizi elemanına aktarıyoruz eğer boşluksa sayaçı 1 arttırıyoruz.
  Artık metodumuz diziyi döndürmeye hazır olduğuna göre diziyide döndürüp metodumuzu tamamlıyoruz.

Son Adım: Değerlendirme

static void Main(string[] args)
{
    Console.WriteLine("Cümlemiz:");
    string metin = "Algoritmik Kod ile birlikte gelişiyoruz.";
    Console.WriteLine(metin);
    string[] kelimelerineAyrilmisMetin = Splitimiz(metin, ' ');
    Console.WriteLine("***********************");
    Console.WriteLine("Yazdığımız Split Metoduyla oluşan dizinin elemanları:");
    foreach (var kelime in kelimelerineAyrilmisMetin)
    {
        Console.WriteLine(kelime);
    }

}
static string[] Splitimiz(string metin,char ayrac) 
{
    int sayac = 0;
    int elemanSayisi = 0;
    for (int i = 0; i < metin.Length; i++)
    {
        if (metin[i] == ' ')
        elemanSayisi++;
    }
    elemanSayisi++;
    string[] kelimelerDizisi = new string[elemanSayisi];
    for (int i = 0; i < metin.Length; i++)
    {
        if (metin[i] != ayrac )
        {
            kelimelerDizisi[sayac] += metin[i];
        }
        else
        {
            sayac++;
        }
    }
    return kelimelerDizisi;
}
}

Sonuç olarak kendi basit split metodumuzu yazdık. Daha gelişmiş versiyonları bu yazı güncellenerek eklenecektir.Kodu mainden çağırıp dizi elemanlarını tek tek yazdırmak isteyenler için kodun tamamını yan tarafa bırakıyorum.Bir sonraki yazımda görüşmek dileğiyle 

– Enes Türkay