new stringtokenizer
时间: 2024-11-15 16:12:24 浏览: 12
`StringTokenizer`是Java语言中旧版的标准库类,它主要用于分割字符串为一系列单词或标记。这个类已经被更现代化的`java.util.String.split()`方法所取代。`StringTokenizer`的工作原理是基于分隔符将输入字符串划分为多个部分,并允许通过索引来访问这些部分。
当你创建一个`StringTokenizer`实例时,需要提供一个字符串作为初始值,并可以选择指定一个分隔符列表。例如:
```java
String str = "Hello,World! How are you?";
StringTokenizer tokenizer = new StringTokenizer(str, ", !");
// 可以通过nextToken()获取下一个标记
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
System.out.println(token);
}
```
然而,由于`StringTokenizer`的一些设计限制和潜在的问题(如效率、线程安全性等),现在推荐使用`split()`方法,其语法更为简洁:
```java
String[] tokens = str.split("\\s+"); // 使用正则表达式匹配空格或其他分隔符
for (String token : tokens) {
System.out.println(token);
}
```
相关问题
StringTokenizer stuff = new StringTokenizer("abc,def,ghi",","); System.out.println(stuff.nextToken()) 和StringTokenizer stuff = new StringTokenizer("abc,def,ghi"); System.out.println(stuff.nextToken()) 的输出分别是什么
第一个输出结果是 "abc",第二个输出结果也是 "abc"。
原因是,第一个语句中的StringTokenizer构造函数传入了分隔符为逗号的参数,所以 "abc,def,ghi" 会被分成三个部分 "abc", "def" 和 "ghi",调用nextToken()方法返回第一个部分 "abc"。
而第二个语句中的StringTokenizer构造函数没有传入分隔符参数,所以默认的分隔符是空格,因为 "abc,def,ghi" 中没有空格,所以整个字符串被当作一个部分,调用nextToken()方法也会返回整个字符串 "abc,def,ghi" 的值。
StringTokenizer str_t = new StringTokenizer("Welcome in Java World!!!")
这行代码创建了一个名为 `str_t` 的 `StringTokenizer` 对象,用于将字符串 `"Welcome in Java World!!!"` 拆分为若干个标记(tokens)。默认情况下,`StringTokenizer` 使用空格、制表符、换行符、回车符和换页符作为分隔符,将字符串分解为多个标记。在这个例子中,将得到五个标记:`"Welcome"`, `"in"`, `"Java"`, `"World!!!"`。可以通过调用 `hasMoreTokens()` 方法判断是否还有更多的标记,通过调用 `nextToken()` 方法获取下一个标记。
阅读全文