3 回答
TA贡献1803条经验 获得超6个赞
您的问题是您重复将新数组分配给 Grid ,从而Grid = new double[totalRow][string.length];
覆盖旧值。
TA贡献1825条经验 获得超4个赞
嵌套 for 循环存在问题,网格每次都由同一行填充。删除外部循环并将行计数器初始化为 0 并在外部 while 循环内递增它。
int rc = 0;
while ( Filename.hasNextLine()){
// Code before Nested For loop
for(j=0;j<string.length;j++){
Grid[rc][j] = // your code
}
rc++;
}
TA贡献1847条经验 获得超11个赞
我认为您错过了数组具有像这样的行和列:double[][] grid = new double[row][col],因此当您逐行读取文件时,您无法在获得最后一行之前找出行数。
public static double[][] readGridFromFile(Path file) throws FileNotFoundException {
final Pattern space = Pattern.compile("\\s+");
try (Scanner scan = new Scanner(new BufferedReader(new FileReader(file.toFile())))) {
List<double[]> lines = new ArrayList<>();
while (scan.hasNextLine()) {
lines.add(Arrays.stream(space.split(scan.nextLine().trim()))
.mapToDouble(Double::parseDouble)
.toArray());
}
double[][] grid = new double[lines.size()][];
int row = 0;
for (double[] line : lines)
grid[row++] = line;
return grid;
}
}
添加回答
举报