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


« Sallayıcı Sıralaması (Shaker Sort)   |   Birliktelik, Münasebet ve Oluşum (Association, Aggregation and Composition) »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Bu Yazı Hakkında

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 992 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.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar