gpt4 book ai didi

java - 从文件数据构建两个二维数组

转载 作者:行者123 更新时间:2023-11-30 03:27:39 24 4
gpt4 key购买 nike

我的任务是将两个矩阵写入一个文件(我已经完成了),然后从文件中读取数据以执行各种计算。我遇到的困难是在方法中重建每个矩阵来执行计算。我决定使用 ArrayList 的 ArrayList,以获得我需要的二维矩阵。使用 BufferedReader,我需要循环遍历一个矩阵,将元素添加到一个数组列表,然后对第二个矩阵执行此操作。我在矩阵上方添加了标题作为标记来查找我想要使用的矩阵数据。有更好的方法吗?

public void sum() throws IOException {

ArrayList<ArrayList<Integer>> matrixArray = new ArrayList<>();

while(br.read() != -1) {
ArrayList row = new ArrayList();

//tried this, using two println spaces between matrices
//but realized can't use readline this way
while(!br.readLine().equals("\n\n")) {
row.add(br.read());
}
matrixArray.add(row);
}

文件数据的格式为:

Matrix One
A B
C D

Matrix Two
A B
C D

--更新--来自下面的评论

while(file.hasNext()) {
if(file.hasNext("Matrix One")){
//Fill arraylist with row data until \n
while(file.hasNextInt()) {
row.add(file.nextInt());
}
matrixOne.add(row);
}
else if(file.hasNext("Matrix Two")) {
row.clear();
while(file.hasNextInt()) {
row.add(file.nextInt());
}
matrixTwo.add(row);
}
}

最佳答案

您应该使用java.util.Scanner类。它更容易使用,并且允许您逐行阅读。

一旦获得单独的行,您可以调用String#split方法使用空格分隔数字。

这将为您提供一个String数组。现在,您可以轻松调用 Integer.parseInt 方法从 String 中检索 int 并将其添加到 ArrayList 中。

希望这有帮助。

关于java - 从文件数据构建两个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812861/

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