gpt4 book ai didi

java - 按新行分组排列文本文件

转载 作者:行者123 更新时间:2023-11-30 07:14:24 26 4
gpt4 key购买 nike

我正在尝试从此文本文件中获取信息:

Flinders Street

amy j
leanne j
chris s

1 normal 1 [(o, 21) (o, 17) (t, 3)]
2 underAge 2 [(t, 4) (i, 6)]
3 elderly 3 [(o, 12) (t, 5) (i, 7)] 3
4 normal 4 [(t, 4) (t, 3) (t, 8) (t, 2)]
5 underAge 5 [(o, 20) (i, 12)]
6 underAge 13 [(o, 20) (t, 5) (t, 3)]
7 elderly 25 [(t, 4) (t, 3) (i, 12)] 0
8 normal 27 [(t, 2) (t, 2)]
9 underAge 28 [(i, 2)]

我想将员工(amy、leanne 和 chris)放入一个数组列表中,以及下面的组,该组是另一个数组列表中与他们相关的客户和值的列表。我尝试这样做如下:

public static void readFile(String file) {
try {
//Using the buffered reader to load the file.
BufferedReader br = new BufferedReader(new FileReader("C:\\input\\" + file));
int listLocation = 0;
while (br.ready()) {
String next = br.readLine().trim();

if (next.isEmpty()) {
listLocation++;
}
if (listLocation == 0) {
Main.branch = next;
}else if (listLocation == 1) {
Main.staff.add(next);
}else if (listLocation == 2) {
Main.customers.add(next);
}
listLocation++;
}
} catch (Exception ex) { }
}

这是当前运行结果:enter image description here

最佳答案

删除 if-else 后面的 listLocation++;:

if (next.isEmpty()) {
listLocation++;
}
if (listLocation == 0) {
Main.branch = next;
}else if (listLocation == 1) {
Main.staff.add(next);
}else if (listLocation == 2) {
Main.customers.add(next);
}
listLocation++;
// ^^^ remove this line

事实上,发生的事情是这样的:

  • 第一行输入:
    • 该行不为空
    • listLocation为0,设置Main.branch
    • listLocation 增加到 1
  • 第二行输入:
    • 行为空 -> 将 listLocation 增加到 2
    • listLocation 为 2,向 Main.customers 添加行(错误,是一个错误)
    • listLocation 增加到 3
  • 剩余行:listLocation 永远递增,listLocation 值上的任何条件都不会再次匹配

关于java - 按新行分组排列文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38691597/

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