StringTokenizer countTokens()以任何字符串返回1

时间:2014-12-20 20:08:50

标签: java stringtokenizer

这是我的代码:

StringTokenizer line = new StringTokenizer("{([]{()})({})}");
System.out.println("Count: " + line.countTokens());

输出始终为Count: 1

我知道这不应该发生在如此简单的代码中。 StringTokenizer库可能有问题吗?

请帮忙!

2 个答案:

答案 0 :(得分:1)

StringTokenizer的默认分隔符集仅包含空格字符,这些字符不会出现在字符串中。

http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html#StringTokenizer%28java.lang.String%29

还要注意StringTokenizer的JavaDoc中的以下语句:

" StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人都使用String的split方法或java.util.regex包。"

答案 1 :(得分:-2)

要打印下一个标记,请使用System.out.println(line.nextToken());