我必须读取一个包含数字列表的文件,然后输出列表中的每个数字,下一个更大的数字。例如,如果列表是
78, 22, 56, 99, 12, 14, 17, 15, 1, 144, 37, 23, 47, 88, 3, 19
输出应如下所示:
78: 88
22: 23
144: max value
这是我到目前为止所拥有的
public class Numbers {
public static void main(String[] args) {
Scanner fileScan;
try {
fileScan = new Scanner(new File("list.txt"));
int data[][] = new int[10][];
int row = 0;
while(fileScan.hasNextLine()) {
String line = fileScan.nextLine();
String[] lineTokens = line.split(",");
data[row] = new int[lineTokens.length];
for (int col = 0; col<lineTokens.length; col++) {
data[row][col] = Integer.parseInt(lineTokens[col]);
}
row++;
}
for (row = 0; row<data.length; row++) {
for (int col = 0; col<data[row].length; col++) {
System.out.print(data[row][col]+" ");
}
System.out.println();
}
System.out.println();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (NullPointerException e) {
e.printStackTrace();
}
}
}
我一直得到** **行的空指针异常。
我很困惑如何将数组排列成我可以读取两个整数的方式,以便打印出正确的值。
答案 0 :(得分:0)
您的NullPointerException正在本节中发生
for (row = 0; row < data.length; row++) {
//if (data[row] == null) continue;
for (int col = 0; col < data[row].length; col++) {
System.out.print(data[row][col] + " ");
}
System.out.println();
}
您将数组的长度分配为10,因此data.length为10,但如果您的文件中没有行行数,则数据[row]为空。
至于你关于安排数字的问题的其他部分,我不知道你想要实现的目标。如果你能更好地解释它,那么我将编辑答案。