Java 尝试初始化2d数组时出现NullPointerException
我得到一个nullPointerException,试图将值从文本文件添加到2d数组。前两个值确定行和列。知道是什么扔的吗。忽略异常处理和打印语句。我正在尝试初始化数组,然后将返回并增强它Java 尝试初始化2d数组时出现NullPointerException,java,arrays,file-upload,nullpointerexception,Java,Arrays,File Upload,Nullpointerexception,我得到一个nullPointerException,试图将值从文本文件添加到2d数组。前两个值确定行和列。知道是什么扔的吗。忽略异常处理和打印语句。我正在尝试初始化数组,然后将返回并增强它 public Help(String filename) throws FileNotFoundException, InvalidFileFormatException { this.filename = filename; System.out.println("Read
public Help(String filename) throws FileNotFoundException,
InvalidFileFormatException {
this.filename = filename;
System.out.println("Reading in file: " + filename);
String number = "";
int row = 0;
int col = 0;
int count = 0;
try {
Scanner inputFile = new Scanner(new File(filename));
while (inputFile.hasNextInt()) {
row = Integer.parseInt(inputFile.next());
col = Integer.parseInt(inputFile.next());
System.out.println("Row : " + row);
System.out.println("Col : " + col);
baseMap = new double[row][col];
System.out.println(baseMap[2][4]);
for (int i = 0; i < baseMap.length; i++){
for (int j = 0; j < baseMap[i].length; j++){
baseMap[i][j] = Double.parseDouble(inputFile.next());
}
}
}
System.out.println(baseMap[2][4]);
} catch (Exception e) {
System.out.println(e.toString());
}
公共帮助(字符串文件名)引发FileNotFoundException,
InvalidFileFormatException{
this.filename=文件名;
System.out.println(“读入文件:“+filename”);
字符串编号=”;
int行=0;
int col=0;
整数计数=0;
试一试{
扫描仪输入文件=新扫描仪(新文件(文件名));
while(inputFile.hasNextInt()){
row=Integer.parseInt(inputFile.next());
col=Integer.parseInt(inputFile.next());
System.out.println(“行:”+行);
System.out.println(“Col:+Col”);
baseMap=新的双[行][col];
System.out.println(baseMap[2][4]);
对于(int i=0;i
输出
正在读取文件:sampleMap2.txt
世界其他地区:5
上校:5
0
线程“main”java.lang.NullPointerException中的异常您希望在这里看到什么值
baseMap = new double[row][col];
System.out.println(baseMap[2][4]);
如果row==1呢
此外,如果在以下位置没有更多数据,该怎么办:
baseMap[i][j] = Double.parseDouble(inputFile.next());
也许你只是没有足够的数据。请添加完整的stacktrace。哪一个是抛出错误的?对于初学者,使用
Scanner\nextInt
而不是自己调用Integer\parseInt
;它更可读,如果失败,你会得到一个信息更丰富的异常。我只是看看它是否真的初始化了一个0.0在那个位置。它在抛出异常之前打印出0.0。那么抛出异常的是哪一行呢?抛出异常的是另一个类中的另一个方法。非常抱歉浪费了您的时间,但非常感谢您的帮助。它让我思考并帮助我找到了修复方法。