我想将 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
意味着什么? - Saviorstok
已经被while循环完全读取,因此在循环完成后调用nextToken()
将会抛出(数据结束)错误。你是想在循环内部调用add()
吗?如果是的话,你可能缺少一些{大括号}。否则,你想做什么?编辑问题并解释清楚。 - Andreas