我正在尝试使用stringTokenizer方法来读取存储在格式为的文件中的二维数组。
1 1
1 1 密码是..。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
StringTokenizer tok = new StringTokenizer(in.readLine());
t[i][j]=Integer.parseInt(tok.nextToken());
}当我运行它时,如果我在文件中使用它,我会得到java.lang.NullPointerException error.However
1 1 1 1代码起作用了!
为什么会发生这种情况?
发布于 2012-08-03 02:27:03
通过在嵌套的for循环中声明/实例化StringTokenizer对象,StringTokenizer对象不存在于嵌套循环的作用域之外。因此,这实际上只是重复嵌套循环,因此您读取的所有内容都是水平的。如果您将StringTokenizer移到嵌套循环外部和父循环内部,它仍将在嵌套循环的作用域内。这应该会解决你的问题。
Move:StringTokenizer tok = new StringTokenizer(in.readLine());位于嵌套循环之上。
https://stackoverflow.com/questions/11783341
复制相似问题