java将二维字符串数组转换为二维整数数组
我不断得到一个空指针异常,我不知道为什么。请解释一下
public static int[][] convertStringToInt(String[][] array){
int [][] numbers = new int [array.length][];
for(int row = 0; row < array.length; row++)
{
numbers[row] = new int [array[row].length]; //line 48
for(int col = 0; col < array[row].length; col++)
{
numbers[row][col] = Integer.parseInt(array[row][col]);
}
}
return numbers;
}
public static void main (String[] agrs)
{
File selectedFile = selectFile("Enter fileName for double number, EX:
decimalNumbers.csv");
if( !selectedFile.exists())
{
System.out.print("\nFile does not exit, program terminating\n\n");
System.exit(1);
}
int countLines = countLinesInFile(selectedFile);
String cities [][] = loadArrayFromFile(selectedFile, countLines);
int [][] unitsSold = convertStringToInt(cities); //line 157
System.out.println(unitsSold);
}
以下是输入文件名时出现的错误
Exception in thread "main" java.lang.NullPointerException
at labReview.ArrayOfArrays.convertStringToInt(ArrayOfArrays.java:48)
at labReview.ArrayOfArrays.main(ArrayOfArrays.java:157)
# 1 楼答案
方法
convertStringToInt
运行良好。您描述的异常NullPointerException
可能发生在该行中如果
array[row]
是null
。因此,发生错误的原因可能是loadArrayFromFile
方法返回了null
行,例如:打印方法
loadArrayFromFile
返回的数组中的元素,查看是否有null
行# 2 楼答案
我猜,你的城市在某个索引处有一个空数组
试着打印你的城市数组,如下所示
如果在任何索引处看到一个“null”值,那么在将其添加到cities数组时,只要有null,就修改loadArrayFromFile以替换黑色数组