Pada bagian sebelumnya kita telah mempelajari cara menggunakan metode split() dari kelas String untuk mendekomposisi sebuah string. Pada bagian ini kita akan mempelajari cara menggunakan objek StringTokenizer untuk menguraikan sebuah string. Berbeda dengan metode split(), objek StringTokenizer tidak menggunakan ekspresi reguler sebagai tanda pemisah.
Pertama-tama kita perlu mengetahui suatu konsep - simbol bahasa . Yang disebut simbol bahasa berarti bahwa ketika kita menganalisis sebuah string, kita menguraikan string tersebut menjadi kata-kata yang dapat digunakan secara mandiri, dan kata-kata ini disebut simbol bahasa.
Misalnya untuk string Sama-sama, jika spasi digunakan sebagai tanda pembatas string, maka string tersebut memiliki tiga kata, yaitu tiga simbol bahasa. Untuk string Anda dipersilakan, jika koma digunakan sebagai tanda pembatas string, maka string tersebut juga memiliki tiga simbol bahasa.
Saat kita menganalisis sebuah string dan menguraikan string tersebut menjadi kata-kata yang dapat digunakan secara independen, kita dapat menggunakan kelas StringTokenizer dalam paket java.util, yang memiliki dua konstruktor yang umum digunakan:
Buat parser untuk string s, menggunakan tanda pembatas default , yaitu karakter spasi (beberapa spasi dianggap sebagai satu spasi), karakter umpan baris, karakter kembalian, karakter Tab, dan karakter umpan sebagai tanda pemisah.
Membuat parser untuk string s. Karakter dalam parameter delim digunakan sebagai pembatas.
Catatan : Kombinasi pembatas apa pun tetap merupakan pembatas.
Misalnya:
StringTokenizerfenxi=newStringTokenizer(selamat datang);StringTokenizerfenxi=newStringTokenizer(Anda;selamat datang,,;);
Memanggil objek StringTokenizer sebagai penganalisis string. Penganalisis dapat menggunakan metode nextToken() untuk mendapatkan simbol bahasa dalam string satu per satu. Setiap kali nextToken() dipanggil, simbol bahasa berikutnya akan diperoleh dalam string simbol bahasa diperoleh, nilai variabel penghitungan di penganalisa string otomatis dikurangi 1. Nilai awal variabel penghitungan sama dengan jumlah kata dalam string.
Biasanya loop while digunakan untuk mendapatkan simbol bahasa satu per satu. Untuk mengontrol loop, Anda dapat menggunakan metode hasMoreTokens() di kelas StringTokenizer, selama ada simbol bahasa di string, yaitu nilainya variabel jumlah lebih besar dari 0, metode ini mengembalikan nilai benar, jika tidak maka akan mengembalikan salah. Selain itu, Anda dapat meminta penganalisis memanggil metode countTokens() kapan saja untuk mendapatkan nilai variabel count di penganalisis.
Misalnya:
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Strings=welcometodotcpp(terima kasih),nicetomeetyou;StringTokenizerfenxi=newStringTokenizer(s,(),);intnumber=fenxi.countTokens(); while(fenxi.hasMoreTokens() ){Stringstr=fenxi.nextToken();System.out.print(str+);}System.out.println(Jumlah kata: +angka+);}}
Hasil yang berjalan adalah sebagai berikut:
selamat datangtodotcppterima kasihnicetomeetyou total kata: 9