StringTokenizer用于按分隔符拆分字符串,支持自定义分隔符和逐个读取词元,适用于CSV、日志等简单文本解析,相比split更省内存且处理空白更自然,但不支持正则和空值返回。
在Java中,StringTokenizer 是一个用于将字符串拆分为多个“词元”(token)的工具类,位于 java.util 包中。它适用于简单的字符串解析场景,比如按指定分隔符分割文本内容。
创建 StringTokenizer 对象时,传入要解析的字符串和可选的分隔符。默认分隔符是空白字符(空格、制表符、换行等)。
常用构造方法:
示例代码:
import java.util.StringTokenizer;
public class TokenExample {
public static void main(String[] args) {
String input = "apple,banana,orange";
StringTokenizer tokenizer = new StringTokenizer(input, ",");
while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
}
}
输出结果:
appleStringTokenizer 主要用于简单格式的文本解析,例如CSV数据、日志行、命令参数等。它的核心功能包括:
注意:StringTokenizer 不支持正则表达式,也不处理连续分隔符之间的空值(即不会返回空字符串)。如果需要更强大功能,应考虑使用 String.split() 或 Scanner 类。
假设有一行用户输入:用户名:年龄:城市,使用冒号分隔:
String data = "Tom:25:Beijing";
StringTokenizer st = new StringTokenizer(data, ":");
String name = st.nextToken();
int age = Integer.parseInt(st.nextToken());
String city = st.nextToken();
System.out.println("姓名:" + name + ",年龄:" + age + ",城市:" + city);
这种结构化提取方式适合固定格式的短文本解析。
相比 String.split(),StringTokenizer 的优势在于:
但 split 更适合复杂分隔规则(支持正则),且返回数组便于流式处理。
基本上就这些。S
