countTokens() 方法在直接在循环中使用时行为不正常



countTokens(( 方法在我使用 in for 循环时返回 3 而不是 5。

	public static void main(String[] args) {
		String s = "foo1,foo2,foo3,foo4,foo5";
		StringTokenizer tokenizer = new StringTokenizer(s, ",");
		System.out.println(tokenizer.countTokens()); // countTokens() return 5
		for (int i = 0; i < tokenizer.countTokens(); i++) // countTokens() return 3
		{
			System.out.println(tokenizer.nextElement());
		}
	}

输出

5
foo1
foo2
foo3

谁能告诉我原因?

原因是当你使用

tokenizer.nextElement()

少了一个令牌,在这种情况下,每次使用它,减少元素计数

tokenizer.countTokens()

试试看:

for (int i = 0; i < tokenizer.countTokens(); i++) 
{
System.out.println(tokenizer.countTokens());
System.out.println(tokenizer.nextElement());
}

因为看到它,并且:

while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextElement());
}

正确查看所有元素。

问候

相关内容

  • 没有找到相关文章

最新更新