【发布时间】:2016-04-27 15:54:29
【问题描述】:
我想将StringTokenizer 结果带到ArrayList。我使用了以下代码并在第一个打印语句中,stok.nextToken() 打印了正确的值。但是,在 ArrayList 的第二个打印语句中,错误为 java.util.NoSuchElementException 。
我如何将这些结果放到 ArrayList 中?
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) throws java.io.IOException {
ArrayList<String> myArray = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter : ");
String s = br.readLine();
StringTokenizer stok = new StringTokenizer(s, "><");
while (stok.hasMoreTokens())
System.out.println(stok.nextToken());
// -------until now ok
myArray.add(stok.nextToken()); //------------???????????
System.out.println(myArray);
}
}
【问题讨论】:
-
查看您的
while声明。如果执行退出循环,这对stok意味着什么? -
非常感谢您的回复。那么,我将如何将此结果放入 ArrayList 中?
-
stok已被 while 循环完整读取,因此在循环完成后调用nextToken()当然会引发(数据结束)错误。您是否打算在循环内调用add()?如果是这样,您缺少一些 {braces}。否则,您要做什么?编辑问题并解释。
标签: java arraylist stringtokenizer