gpt4 book ai didi

java - 如何从文件中读取数组

转载 作者:行者123 更新时间:2023-12-01 09:55:56 25 4
gpt4 key购买 nike

我试图从文件创建一个矩阵,该文件是这样的:我的第一行的矩阵大小= 10 x 9在其他行中,我们有 15 个随机分布的值。

3 5
4 5 6
12 34 12 12 8
34 23
12 34 34 10 89

根据信息大小,我将定义我的矩阵。我用这个方法来读取:

public static void read(){
String line= "";
int i = 0;
try {
while((line = bf.readLine()) != null){
if (i == 0){
//Call method that get the size and create my global matriz
}else{
String[] list = line.split(" ");
//I need help here, for insert correctly in the array
}
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

如何在矩阵中有序插入?我的矩阵应该是这样的:

    4   5   6   12  34 
12 12 8 34 23
12 34 34 10 89

有什么想法吗?

最佳答案

这是一种方法:

String input = "3 5\n" +
"4 5 6\n" +
"12 34 12 12 8\n" +
"34 23\n" +
"12 34 34 10 89\n";
Scanner in = new Scanner(input);
final int rows = in.nextInt();
final int cols = in.nextInt();
int[][] matrix = new int[rows][cols];
int row = 0, col = 0;
for (int i = 0; i < rows * cols; i++) {
matrix[row][col] = in.nextInt();
if (++col == cols) {
row++;
col = 0;
}
}
System.out.println(Arrays.deepToString(matrix));

输出:

[[4, 5, 6, 12, 34], [12, 12, 8, 34, 23], [12, 34, 34, 10, 89]]

这不一定是最好的方法,但我想展示 colrow 的手动增量逻辑,其中 row > 当 col 滚动时递增。

使用answer by sebenalern ,它会像这样工作:

int[][] matrix = new int[rows][cols];
for (int row = 0; row < rows; row++)
for (int col = 0; col < cols; col++)
matrix[row][col] = in.nextInt();

使用answer by Paul ,它会像这样工作:

int[][] matrix = new int[rows][cols];
for (int i = 0; i < rows * cols; i++)
matrix[i / 5][i % 5] = in.nextInt();

所有 3 个版本都依赖于 Scanner 来简单地提供序列中的所有值,无论它们如何放在一起。

如果您不想使用Scanner(例如,因为它很慢),并逐行读取输入,然后读取一行上的值,第一个版本会更容易使用。否则第三个版本是最短的,第二个版本是最简单的。

关于java - 如何从文件中读取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220997/

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