类型概述
StringTokenizer类主要用于分隔字符串,将一个String分成多个Token。
构造方法
StringTokenizer(String str)
根据指定的字符串创建一个StringTokenizer对象,默认以 \t \r \n \f为分隔符。
StringTokenizer(String str, String delim)
根据指定的字符串创建一个StringTokenizer对象并指定分隔符。
StringTokenizer(String str, String delim, boolean returnDelims)
根据指定的字符串创建一个StringTokenizer对象并指定分隔符,以及是否返回分隔符。
对象方法
1、countTokens函数
int countTokens()
计算分隔的token数,相当于调用nextToken函数的次数。
2、hasMoreTokens函数
boolean hasMoreTokens()
判断是否还有其他的Token,如果返回True,那么nextToken函数就会返回下一个Token。
3、nextToken函数
String nextToken()
返回下一个Token。
使用示例
实现一个比Scanner高效的解析类InputReader,当输入数据越多时,InputReader的效率比Scanner高很多。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Test {
static class InputReader{
private BufferedReader bufferedReader;
private StringTokenizer stringTokenizer;
InputReader(InputStream in){
bufferedReader = new BufferedReader(new InputStreamReader(in));
stringTokenizer = new StringTokenizer("");
}
public String next() throws IOException{
while(!stringTokenizer.hasMoreTokens()){
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
}
return stringTokenizer.nextToken();
}
}
public static void main(String[] args) throws IOException {
InputReader inputReader = new InputReader(System.in);
String s = inputReader.next();
System.out.println(s);
}
}