我正在尝试从此文本文件中获取信息:
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) { }
}
这是运行它的当前结果:
最佳答案
在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
增量为2listLocation
是2,将行添加到Main.customers
(错误地是一个错误)将
listLocation
递增到3剩余的行:
listLocation
永远增加,listLocation
的值的任何条件都不会再次匹配