• Bağış
  • String Tokenizer ( Dizgi Parçalayıcı )

    Yazan : Şadi Evren ŞEKER

    Bilgisayar bilimlerinde sık kullanılan veri tiplerinden birisi de dizgilerdir (Strings). Bu veri tipinde herhangi bir yazı durabilir. Genellikle verinin bir parçasını elde etmek için dizgi içerisinden bir parça çıkarılması gerekir. Bu işlem için dizginin (string) parçalanması gerektiğinde yapılan işleme parçalama (Tokenize) ismi verilir.

    Örneğin çok sık kullanılan virgül ayırmalı veri (Comma seperated values) yapısındaki bir dosyayı ele alalım:

    isim,telefon,dogum

    ali,123,1970

    veli,321,1980

    ahmet,333,1981

    Yukarıdaki bu dosyayı okuyarak sırasıyla verileri işlememiz gerekirse yapılacak işlem dosyadan satır satır verileri okumak ve “,” karakterinden okunan dizgileri bölmek gerekir.

    Bu işlem için örneğin C dilinde bir karakter dizisine okumak ve dizinin her elemanı üzerinden bir döngü ile geçerek , karakteri görünce bölme işlemini tamamlamak gerekir.

    Bu işlemi yapan strtok isimli bir fonksiyon string.h dosyasında bulunmaktadır.  Aşağıdaki şekilde kullanılabilir:

    /* strtok ornegi */
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str[] ="- Bu, ornek bir dizgidir.";
      char * pch;
      printf ("Girilen \"%s\" mesajini parcaliyoruz:\n",str);
      pch = strtok (str," ,.-");
      // parcalama icin kullanilan ayırıcılar (delimiters)
      while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ,.-");
      }
      return 0;
    
    }

    Yukarıdaki programın sonucu aşağıda verilmiştir:

    Girilen "Bu, ornek bir dizgidir." mesajini parcaliyoruz:
    Bu
    ornek
    bir
    dizgidir

    Yukarıda görüldüğü üzere ,.- karakterlerinden parçalanmıştır. Benzer bir hazır fonksiyonda JAVA dilinde bulunmaktadır. StringTokenizer isimli fonksiyonun kullanımı aşağıda verilmiştir:

         StringTokenizer st = new StringTokenizer("Bu, ornek bir dizgidir"," ,.");
         while (st.hasMoreTokens()) {
             System.out.println(st.nextToken());
         }

    Yukarıdaki kodda da aynı dizgi aynı ayıraçlarla (Deliminator) verilmiştir ve çıktısı aşağıdaki şekildedir:

    Bu
    ornek
    bir
    dizgidir

    Benzer Yazılar:

    Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'String Tokenizer ( Dizgi Parçalayıcı )' isimli yazı 20 Dec 2008 tarihinde, saat: 01:29 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1474 defa okunmuştur.

    Benzer yazıları C/C++, JAVA, veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


    Category: C/C++, JAVA, veri yapıları

    Leave a Reply