|
| 1 | +# Java StringTokenizer |
| 2 | + |
| 3 | +Didalam **JAVA** terdapat sebuah class yang bernama **_StringTokenizer_**. Class ini berguna untuk memecah string kedalam bentuk _tokens_. Tidak seperti class **_StreamTokenizer_**, class ini tidak memiliki fitur untuk membedakan antara data angka, string, maupun _identifiers_. |
| 4 | + |
| 5 | +Untuk menggunakannya, silahkan import package ```java.util.StringTokenizer``` terlebih dahulu. |
| 6 | + |
| 7 | + |
| 8 | +<img src="img/StringTokenizerFlow.png" width="140" height="250" style="margin-bottom:20px; margin-top:10px;"> |
| 9 | + |
| 10 | +Terdapat 3 constuctor dalam class **_StringTokenizer_**, yaitu : |
| 11 | + |
| 12 | +- ```StringTokenizer(String str)``` |
| 13 | + Membuat token berdasarkan argumen string yang diinput |
| 14 | +- ```StringTokenizer(String str, String delim)```. |
| 15 | + Membuat token berdasarkan argumen string dan _delimiter_ (pemisah) yang diinput. |
| 16 | +- ```StringTokenizer(String str, String delim, boolean returnValue)``` |
| 17 | + Membuat token berdasarkan argumen string, _delimiter_, dan boolean returnValue yang diinput. Jika boolean returnValue bernilai **true** maka _delimiter_ dibaca sebagai token, sedangkan jika returnValue bernilai **false** maka _delimiter_ berfungsi untuk memisah-misahkan token. |
| 18 | + |
| 19 | +Method-method yang terdapat dalam class **_StringTokenizer_** : |
| 20 | + |
| 21 | +- ```boolean hasMoreTokens()```, untuk melakukan pengecekan apakah masih ada token yang tersedia. |
| 22 | +- ```int countTokens()```, untuk menghitung jumlah keseluruhan token yang tersedia. |
| 23 | +- ```Object nextElement()```, untuk mengambil data token selanjutnya dan mengembalikannya dalam bentuk Object. |
| 24 | +- ```String nextToken()```, untuk mengambil data token selanjutnya dan mengembalikannya dalam bentuk String. |
| 25 | +- ```boolean hasMoreElements()```, untuk melakukan hal yang sama seperti method ```boolean hasMoreTokens()```. |
| 26 | + |
| 27 | +### Contoh penggunaan |
| 28 | +[](JavaStringTokenizer.java) |
| 29 | + |
| 30 | +Dibawah ini akan didemonstrasikan cara melakukan tokenisasi string dan memisah-misahkannya dengan karakter whitespace (spasi). |
| 31 | + |
| 32 | +```java |
| 33 | +StringTokenizer strings = new StringTokenizer("My name is Caroline."," "); |
| 34 | + |
| 35 | +while (strings.hasMoreTokens()) { |
| 36 | + System.out.println(strings.nextToken()); |
| 37 | +} |
| 38 | +``` |
| 39 | + |
| 40 | +Dengan method ```hasMoreTokens()``` diatas, akan dicek apakah masih ada token yang tersedia. Selama masih ada, maka token tersebut dicetak. Begitu juga dengan token selanjutnya ( ```nextToken()``` ). |
| 41 | + |
| 42 | +Maka, outputnya adalah |
| 43 | + |
| 44 | +``` |
| 45 | +My |
| 46 | +name |
| 47 | +is |
| 48 | +Caroline. |
| 49 | +``` |
| 50 | + |
| 51 | +Selanjutnya, kita akan coba menggunakan method ```nextToken()``` dengan _delimiter_ berupa tanda koma, namun tidak dimasukkan kedalam blok perulangan. |
| 52 | + |
| 53 | +```java |
| 54 | +StringTokenizer strings = new StringTokenizer("Hello, nice to meet you."); |
| 55 | +System.out.println(strings.nextToken(",")); |
| 56 | +``` |
| 57 | + |
| 58 | +Karena tidak dilakukan perulangan dalam membaca token, maka hanya diambil 1 token, yaitu token yang berada sebelum _delimiter_ (,). |
| 59 | + |
| 60 | +Maka, outputnya adalah |
| 61 | + |
| 62 | +``` |
| 63 | +Hello |
| 64 | +``` |
| 65 | + |
| 66 | +Selanjutnya, kita akan coba menggunakan method ```countTokens()``` untuk menghitung jumlah keseluruhan token yang ada. |
| 67 | + |
| 68 | +```java |
| 69 | +StringTokenizer strings = new StringTokenizer("Hello, nice to meet you."); |
| 70 | +System.out.println(strings.countTokens()); |
| 71 | +``` |
| 72 | + |
| 73 | +Maka, outputnya adalah |
| 74 | + |
| 75 | +``` |
| 76 | +5 |
| 77 | +``` |
| 78 | + |
| 79 | +Selanjutnya, kita akan coba menggunakan method ```hasMoreElements()``` untuk menghitung jumlah keseluruhan token yang ada. |
| 80 | + |
| 81 | +```java |
| 82 | +StringTokenizer strings = new StringTokenizer("Hello, world !"," "); |
| 83 | + |
| 84 | +while (strings.hasMoreElements()) { |
| 85 | + System.out.println(strings.nextToken()); |
| 86 | +} |
| 87 | +``` |
| 88 | + |
| 89 | +Maka, outputnya adalah |
| 90 | + |
| 91 | +``` |
| 92 | +Hello, |
| 93 | +world |
| 94 | +! |
| 95 | +``` |
| 96 | + |
| 97 | +Dapat dilihat bahwa method ```hasMoreElements()``` memiliki cara kerja yang sama dengan method ```hasMoreTokens()```. |
| 98 | + |
| 99 | +### Daftar lengkap method Class StringTokenizer |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +[](https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html#method_detail) |
0 commit comments