gpt4 book ai didi

java - 从 JAVA 中第一行指定矩阵大小的文件中读取矩阵

转载 作者:行者123 更新时间:2023-12-01 08:48:10 24 4
gpt4 key购买 nike

我正在尝试读取存储在txt文件中的n×n矩阵。文件的第一行指定矩阵的大小:

我的文件看起来像:

5
1 2 3 4 5
2 3 4 6 8
5 6 8 7 4
4 9 9 9 9
4 4 7 8 2

这是我尝试过的代码片段:

bufferedReader.readLine();
for (int m = 0; m < size; m++) {
String[] st = br.readLine().trim().split(" ");
System.out.println(st);
for (int n = 0;n < size; n++) {
inputArray[m][n] = Integer.parseInt(st[n]);
}
}

但是在打印 inputArray 后我得到这样的输出:

inputArray is :
1
1
1
1
1

请任何人指出我错过了哪些可能性。 这种方法可能存在什么错误。

最佳答案

让您的代码说话。如果您使用清晰的方法名称和变量名称,每个人都应该理解您的代码。像这样的东西(它使用 Apache 的 FileUtils)

int[][] parseMatrixFile() {
File file = getThatTxtFromSomewhere();
List<String> lines = FileUtils.readLines(file, "utf-8");
int matrixSize = Integer.parseInt(lines.get(0).trim());
List<String> matrixList = lines.subList(1, matrixSize);
int[][] matrix = getMatrix(matrixList, size);
return matrix;
}

int[][] getMatrix(List<String> matrixLines, int size) {
int[][] matrix = new int[size][];
for (int row = 0; row < size; row++) {
matrix[row] = getMatrixRow(matrixLines.get(row), size);
}
return matrix;
}

int[] getMatrixRow(String row, int matrixSize) {
int[] row = new int[matrixSize];
String[] stringedRow = row.trim().split(" ");
for (int i = 0; i < matrixSize; i++)
row[i] = Integer.parseInt(stringedRow[i]);
return row;
}

关于java - 从 JAVA 中第一行指定矩阵大小的文件中读取矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42552269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com