31 Ekim 2009
Java StringTokenizer Sınıfı
Programming is Practise felsefesinden yola çıkarak bu sınıfın kullanımını kolayca anlayabileceğimiz basit bir program yazarak işe başlayalım.
import java.util.StringTokenizer;
public class Practise {
public static void main(String[] args) {
String cumle1="deniz gözlerinden alır sonsuzluğun haberini";
StringTokenizer st1 = new StringTokenizer(cumle1);
while(st1.hasMoreTokens())
{
System.out.println(st1.nextToken());
}
// 1.bölüm sonu
String cumle2="ben,sen,o,biz,,,siz";
StringTokenizer st2= new StringTokenizer(cumle2,",");
while(st2.hasMoreTokens())
{
System.out.println(st2.nextToken());
}
// 2.bölüm sonu
String cumle3="yıldızlara;uzanıp,hep-seni sordum?gece!yarılarında. "
String delims =",;-!.";
StringTokenizer st3= new StringTokenizer(cumle3, delims);
System.out.println("\n Token sayısı="+st3.countTokens());
while (st3.hasMoreElements())
{
System.out.println(st3.nextToken());
}
// 3.bölüm sonu
}
}
Programı bölüm bölüm inceleyecek olursak, ilk bölümde cumle1 stringini nasıl token lara ayırabileceğimizi görüyoruz.StringTokenizer tipinde bir st nesnesi oluşturuyoruz. Constructor parametre olarak sadece cumle1 stringini aldığından default olarak splitting işlemi yapacaktır yani boşluk karakterlerine göre token lara ayırma işlemi. Buna göre ilk bölümün çıktısı şu şekilde olmalıdır.
deniz
gözlerinden
alır
sonsuzluğun
haberini
İkinci bölümde, string içine bir kaç virgül ekleyerek oluşturduğumuz st2 nesnesinin yapıcısına cumle2 ve "," stringlerini parametre olarak gönderiyoruz. Yapıcıya 2.parametre olarak gönderilen bu karaktere sınırlayıcı karakter (delimiter) adı verilir. Bu durumda cumle2 stringi "," karakterinin görüldüğü her yerde token lara ayrılır. Çıktı şu şekilde olmalıdır.
ben
sen
o
biz
siz
Üçüncü bölümde, birden çok delimiter kullanılmak istenmiş ve bunlar karakter dizisi şeklinde bildirilmiştir.
StringTokenizer st3= new StringTokenizer(cumle3, delims); -kod satırının anlamı cumle3 stringini delims içindeki karakterlere göre token lara parçala- manasına gelmektedir.StringTokenizer oluşturduğu token ları bir dizi olarak değil ancak sırayla erişilebilecek bir enumaration type olarak döndürür. 3.bölümün çıktısı da aşağıdaki gibi olur.
Token sayısı=6
yıldızlara
uzanıp
hep
seni sordum?gece
yarılarında
Dikat edilirse, delims içinde boşluk karakteri ve "?" bulunmadığından dolayı
'seni sordum?gece' tokenlara ayrılmamıştır.
hasMoreTokens(); boolean değer döndüren bir metoddur sırada token olup olmadığını kontrol eder
nextToken(); sıradaki token i döndürür
countTokens(); o anda kalan token sayısını verir.
Daha ayrıntılı bilgiler;
java-sun.com
24 Ekim 2009
Düz ,sağa yatık ve sola yatık çizgilerle Hello World!
İlk blog yazım .. İlkler benim için her zaman zor, heyecanlı ve bir o kadar da stresli olmuştur. Bu yazıya başladığım şu saniyelerde de bu durum etkisini hissetirmekte : ) Ama yine de bu durum bence normal bir süreç çünkü, yaşanan ilkler insan hayatını bir şekilde etkileyerek o hayata başka bir yön katar , hayatı başka bir tarafa kaydırabilir hatta yönsüz bile bırakabilir : ) Her insan için o kadar çok yön ve bu yönlere giden o kadar çok yol vardır ki; insan bu yolların hepsinde aynı anda bir yolculuk içerisindedir,bin parçalı bir yolda yolculuklar… Bu yolculukların hepsi birden hayat olur işte ve biz de bir yandan bu yollarda yürümeye devam ederken , diğer yandan da yeni yollara yani yeni ilklere saparız. Aklıma annemin beni elimden tutup, ilkokula keydetmeye götürdüğü gün geldi. Evimiz okula oldukça uzaktı, 7 yaşındaki bir çocuğun adımlarıyla 25- 30 dakikalik bir yol.. O tek katlı sarı okul binasının merdivenlerine yaklaştıkça korkum artıyordu. Gevşetmeye çalıştıkça ben, annem daha da sıkı tutuyordu ellerimi. Merdivenlerden çıkıp kayıt masasının önüne geldiğimizde ben artık ağlıyordum ve annemin elinden kurtulup okulun bahçe kapısına doğru koşmaya başlamıştım uzaklaştıkça yavaşladığımı da hatırlıyorum.. en sonunda o binaya zorla girdim ve kaydım yapıldı.Okullar açıldı.Annem ilk 5 gün boyunca ilk ders saatlerinde benimle derslere girmek zorunda kaldı, anne-oğul aynı sırada oturuyorduk : ) Annelerin hakkı ödenemez.. İlk haftalar deftere çizdiğimiz düz, sağa yatık, sola yatık çizgilerde bile onun emeği vardır : ) .. ilkti ve zordu..
İlkokuldan üniversiteye uzuun bir atlama yaparsam ( ‘93 – ‘06 = 13 yıl ) , üniversiteye bir bilgisayar mühendisinin en çok yapacağı şeyin kod yazmak olduğunu bilerek geldim ve ben hayatımda daha önce hiç kod yazmamıştım, ve bu konulara yabancı oldumu söylersem doğru söylemiş olurum. Benim için korkulu ve stresli bir dönemdi. Bu durum benim 1. sınıfa başlamadan önce 1 yıl hazırlık sınıfına gitmeme bile neden oldu… Çoğu kimsenin yaptığı gibi ben de önce bir araştırma sürecine girdim ve sonunda elime bir kitap aldım. bu kitap bir turbo pascal kitabıydı, keza ben hazırlık okuduğumda 1. sınıflara pascal öğretiliyordu. Kitabı elime alıp bilgisayarımın karşısına geçtiğimde heyecanlanmıştım. Bundan sonra en çok yapacağım işi ilk defa yapacaktım. Kitaptaki talimatları okuyarak bilgisayarıma önce bir pascal editörü kurdum ve artık kodları yazmaya hazırdım. İlk kod tartışılmaz “hello world!” olacaktı. ve kodları yazmaya başladım.
Program Hello ;
Uses Crt;
Begin
ClrScr;
Write ( ‘ Hello World!’ ) ;
Readln;
End.
Hatalı olmasın diye satırları birebir yazdım hatta write ‘ ın içini bile değiştirmeye çekindim : ) Kodları yazıp derledikten sonra hemen hemen herkesin başına gelen benim de başıma geldi, derleyici hata verdi : ) Eksik noktalı virgülleri koyup tekrar derledikten sonra hatasız şekilde program çalıştı ekranda beklenen ‘hello world!’ göründü. O anki heyecanı yaşayanlar bilirler, o heyecanla ve gazla kitapta bayağı ilerlemiştim : ) .. ilkti ve heyecanlıydı..
Bu yazıya başladığımda ne konuda yazacağımı bilmiyordum, ben başlıyayım o gelir dedim ve başlığı da şekillenen duruma göre atarım dedim; düz,sağa yatık ve sola yatık çizgilerle hello world!
- Share this on del.icio.us
- Digg this!
- Stumble upon something good? Share it on StumbleUpon
- Share this on Reddit
- Add this to Google Bookmarks
- Tweet This!
- Share this on Facebook
- Share this on Mixx
- Subscribe
- Buzz up!
- Share this on Linkedin
- Submit this to DesignFloat
- Share this on Technorati
- Submit this to Script & Style
- Post this to MySpace
- Share this on Blinklist
- Share this on FriendFeed
- Seed this on Newsvine