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;
}
}
添加回答
舉報