StringTokenizer được sử dụng để tách chuỗi ra thành các chuỗi token con.
StringTokenizer Constructor
StringTokenizer(String str): str là chuỗi được tách ra thành các chuỗi token con. Mặc định chuỗi phân cách là new line, space, tab.
StringTokenizer(String str, String delim): delim được dùng làm chuỗi phân tách thành các chuỗi token con.
StringTokenizer(String str, String delim, boolean flag): 2 tham số đầu giống với constructor trên. flag có nghĩa sau:
- nếu flag là false: thì chuỗi delim là chuỗi phân tách cho các chuỗi con:. Ví dụ: str là “share token” và delim là ” ” thì “share” và “token” là các chuỗi token.
- nếu flag là true: thì ngoài việc delim là chuỗi phân tách cho các chuỗi token con, thì bản thân nó cũng chính là một chuỗi token. Ví dụ str là “share token” và delim là ” ” thì ngoài “share” và “token” thì chúng ta còn có ” ” là một token.
import java.util.StringTokenizer; public class Main { public static void main(String[] args) {System.out.println("Using Constructor 1 - "); StringTokenizer st1 = new StringTokenizer("share programming net"); while (st1.hasMoreTokens()) System.out.println(st1.nextToken()); System.out.println("Using Constructor 2 - "); StringTokenizer st2 = new StringTokenizer("JAVA : Code : String", " :"); while (st2.hasMoreTokens()) System.out.println(st2.nextToken()); System.out.println("Using Constructor 3 - "); StringTokenizer st3 = new StringTokenizer("JAVA : Code : String", " :", true); while (st3.hasMoreTokens()) System.out.println(st3.nextToken()); } }
Output:
Using Constructor 1 –
share
programming
net
Using Constructor 2 –
JAVA
Code
String
Using Constructor 3 –
JAVA
:
Code
:
String
StringTokenizer methods:
1, pubic boolean hasMoreTokens(): Kiểm tra stringtokenizer hiện tại còn chuỗi token nào hay không tkể từ vị trí cuối cùng được lấy.
2, public String nextToken(): trả về chuỗi token tiếp theo.
3, public int countTokens(): Trả về tổng số chuỗi token hiện có.
import java.util.StringTokenizer; public class Main { public static void main(String[] args) {System.out.println("Using Constructor 1 - "); String mydelim = " : "; String mystr = "JAVA : Code : String : Tokenizer : Share"; // Use of Constructor 2 // Here we are passing Delimiter - "mydelim" StringTokenizer geeks3 = new StringTokenizer(mystr, mydelim); // Printing count of tokens and tokens int count = geeks3.countTokens(); System.out.println("Number of tokens : " + count + "\n"); for (int i = 0; i <count; i++) System.out.println("token at [" + i + "] : " + geeks3.nextToken()); // .hasMoreTokens() method checks for more Tokens. // Here not working as no Tokens left while (geeks3.hasMoreTokens()) // .nextToken is method is returning next token. System.out.println(geeks3.nextToken()); } }
Output:
Number of tokens : 5
token at [0] : JAVA
token at [1] : Code
token at [2] : String
token at [3] : Tokenizer
token at [4] : Share
4, public Object nextElement(): Trả về object token tiếp theo. Về căn bản giống với nextToken(), các bạn chỉ cần parse sang String rồi dùng thôi.
4, public boolean hasMoreElements(): Tương tự hasMoreTokens()
import java.util.StringTokenizer; public class Main { public static void main(String args[]) { String mydelim = " : "; String mystr = "JAVA : Code : String : Tokenizer : Share"; // Use of Constructor 2 // Here we are passing Delimiter - "mydelim" StringTokenizer geeks = new StringTokenizer(mystr, mydelim); // .countTokens() method counts no. of tokens present. int count = geeks.countTokens(); System.out.println("Number of tokens : " + count); // use of hasMoreElements() - true if tokens are present while (geeks.hasMoreElements()) // use of nextElement() - returns the next token System.out.println(geeks.nextElement()); } }
Output:
Number of tokens : 5
JAVA
Code
String
Tokenizer
Share
Note:
countToken() thường được dùng chung với hasMoreTokens() và nextToken để duyệt qua toàn bộ các chuỗi token.