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

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) {  }
    }


这是运行它的当前结果:java - 按新行分组排列文本文件-LMLPHP

最佳答案

在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的值的任何条件都不会再次匹配

07-24 09:23