Sponsor Reklam 


31.01.2009 (06:04)

 StringTokenizer Kullanımı 
Metin (text) üzerine çeşitli işlemlerde yazıyı belirli ayraçlara göre ayırmak (parsing) isteyebiliriz. Bu amaca yönelik StringTokenizer sınıfı kullanım bulmuştur.

Bu sınıf ile metni belirli bir ayraça göre ayrıştırabiliriz. Ayırma işlemi sonrası her bir ayrılmış parçayı kolay bir şekilde elde edebiliriz. Genelde boşluk karakterine göre bölme (splitting) ve benzeri işlemlerde kullanılmaktadır. Kolayca ayrılabilir hale getirilen bilgileri de tekrar elde etmek amacıyla saklamak için araya ayıraç koyup text olarak yazabiliriz. Bu ayraca göre okuma işlemi bu sınıf ile kolay bir şekilde yapılabilecektir.

Şimdi bu sınıfın kullanımına bir örnekte bakalım. Önce boşluğa göre ayırma işlemi yapalım. Sonraki yazı için de eşittir ve noktalı virgül karakterlerine göre ayırma işlemi yapalım ve sonuçları görelim:

Main.java:
package kodcu.net;

import java.util.StringTokenizer;

public class Main {

  public static void main(String[] args) {
    String text = "This is an example for StringTokenizer.";

    // This example will parse the text considering blank characters.
    StringTokenizer st = new StringTokenizer(text);
    // Let's write all tokens.
    while (st.hasMoreTokens()) {
      System.out.println(st.nextToken());
    }

    text = "(3 + 4) / 7 = 1;";
    text += "2 * 9 = 18;";
    // Parsing the text accordingly equality and semicolon character
    st = new StringTokenizer(text, "=;");
    // counts of tokens
    System.out.println("Count: " + st.countTokens());
    while (st.hasMoreTokens()) {
      System.out.println(st.nextToken());
    }
  }
}

Ekran çıktısı:
This
is
an
example
for
StringTokenizer.
Count: 4
(3 + 4) / 7
1
2 * 9
18

countTokens() metodu ayraca göre elde edilen token'lerin sayısını vermektedir. StringTokenizer sınıfı Enumeration sınıfını uygular (implements). Bu, elde edilen elemanlar arasında ilerlememizi sağlar. hasMoreTokens() metodu da sırada token olup olmadığını true/false olarak veren boolean dönüş tipli bir metottur. nextToken() metodu ise sırada yer alan token'i elde etmeyi sağlar.

StringTokenizer'ı en iyi anlayabileceğimiz kullanım yerlerinden birisi bazı resim formatlarında resmin boyut bilgilerini tutan header kısmında bu bilgilerin okunmasıdır. Bunu daha önce bahsettiğimiz PGM formatında resim okuma ve yazma yazımızda görebilirsiniz. Resme ait genişlik (width), yükseklik (height) ve derinlik (depth) bilgileri bu sınıfın nesnesi kullanılarak elde edilmiştir.
Imza: admin








Yazilar kaynak gosterilmeden kopyalanamaz © www.kodcu.net // Twitter