0

我正在尝试使用 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 错误。但是,如果我在文件中使用它

1 1 1 1

代码有效!
为什么会这样?

4

1 回答 1

2

通过在嵌套循环中进行StringTokenizer对象声明/实例化,对象不存在于嵌套循环范围之外。所以这实际上只是重复嵌套循环,所以你阅读的所有内容都是水平的。如果您移动嵌套循环的外部和父循环的内部,它仍将在嵌套循环的范围内。那应该可以解决您的问题。forStringTokenizerStringTokenizer

移动: StringTokenizer tok = new StringTokenizer(in.readLine());在您的嵌套循环上方。

于 2012-08-02T18:27:02.983 回答