gpt4 book ai didi

java - 从文件读取时如何将一行保存到链表中并将下一行保存到另一个列表中

转载 作者:行者123 更新时间:2023-11-30 08:10:49 25 4
gpt4 key购买 nike

我想从一个文件中读取并将每一行存储到一个单独的 LinkedList 但我不知道该怎么做,因为我正在使用 split 函数。

文本是这样的:

124,53,7,2

1,2,34,567,23

因此将第一行存储到一个 LinkedList 中,将第二行存储到另一个 LinkedList 中。

ex:num1 持有 124, 53, 7, 2 个节点
num2 持有 1, 2, 34, 567, 23 个节点

if(args.length == 0)
System.out.println("No file specified.");
else{
FileReader theFile;
BufferedReader inFile;
String oneLine;
int s;

try{
theFile = new FileReader(args[0]);
inFile = new BufferedReader(theFile);
LargeNumber num1 = new LargeNumber();
LargeNumber num2 = new LargeNumber();
while((oneLine = inFile.readLine()) != null){
String numbers[] = oneLine.split(",");
s = 0;
for(int i = 0; i < numbers.length; i++){
num1.push(Integer.parseInt(numbers[i]));
}
if((inFile.readLine()).length()==0){
continue;
}
}
}
catch(Exception e){
System.out.println(e);
}
}

最佳答案

如果我没有理解错的话,您似乎想将列表成对排列。这是最简单的方法,但不一定是最好的:

List<LargeNumber> firstList = new ArrayList<>();
List<LargeNumber> secondList = new ArrayList<>();
try{
theFile = new FileReader(args[0]);
inFile = new BufferedReader(theFile);
while(inFile.ready()){
String firstLine = getNonEmptyLine(inFile);
if(firstLine.isEmpty()) break;
String secondLine = getNonEmptyLine(inFile);
if(secondLine.isEmpty()) break;
firstList.add(makeLargeNumber(firstLine));
secondList.add(makeLargeNumber(secondLine));
}
}
catch(Exception e){
System.out.println(e);
}

这是 readNonEmptyLine() 方法:

private String readNonEmptyLine(BufferedReader reader) {
while(reader.ready()) {
String nextLine = reader.readLine();
if(!nextLine.isEmpty()) return nextLine;
}
return "";
}

这里是 makeLargeNumber 方法:

private LargeNumber makeLargeNumber(String line) {
LargeNumber num1 = new LargeNumber();
String numbers[] = oneLine.split(",");
s = 0;
for(int i = 0; i < numbers.length; i++){
num1.push(Integer.parseInt(numbers[i]));
}
return num1;
}

这会起作用,但如果有这样的类会更好:

class NumberPair {
LargeNumber firstNumber;
LargeNumber secondNumber;
}

然后只有一个 List 而不是两个。我认为您可以弄清楚如何修改以上代码以使用 NumberPair 类。

关于java - 从文件读取时如何将一行保存到链表中并将下一行保存到另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495459/

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