当我运行以下代码时,我发现了一些奇怪的东西。
下面程序的输出是token1 = AAAAA token2 = BBBBB |
但是,据我了解,应该是token1 = AAAAA token2 = BBBBB | DUMMY
public class TestToken {
public static void main(final String[] args) {
final String delim = "DELIM";
String token1 = "AAAAA";
String token2 = "BBBBB|DUMMY";
final String input = token1 + delim + token2;
final StringTokenizer tokenizer = new StringTokenizer(input, delim);
final String text1 = tokenizer.nextToken();
final String text2 = tokenizer.nextToken();
System.out.println("token1=" + text1);
System.out.println("token2=" + text2);
System.out.println();
}
}
有人可以向我解释如何解决此问题,以及为什么会这样吗?
最佳答案
摘录自constructor's documentation:
delim参数中的字符是用于分隔标记的定界符。
这意味着每个字符都是一个定界符,而不是整个字符串。实际上,您有5个定界符(字符D
,E
,L
,I
和M
)。
您可以使用以下代码查看效果
while (tokenizer.hasMoreTokens())
System.out.println(tokenizer.nextToken());
输出:
AAAAA
BBBBB|
U
Y