使用BufferedReader将行拆分为两个字符串

时间:2013-11-26 19:53:14

标签: java

我想在读取我正在使用的txt文件时将每一行拆分为两个单独的字符串,然后将它们存储在HashMap中。但是现在我似乎无法正确读取文件。这是我文件的一小部分:

....
CPI       Clock Per Instruction 
CPI       Common Programming Interface [IBM]
.CPI      Code Page Information (file name extension) [MS-DOS]
CPI-C     Common Programming Interface for Communications [IBM]
CPIO      Copy In and Out [Unix]
....

这就是我的代码:

    try {
        BufferedReader br = new BufferedReader(new FileReader("akronymer.txt"));
        String line;

        String akronym;
        String betydning;
        while((line = br.readLine()) != null) {
            String[] linje = line.split("\\s+");

            akronym = linje[0];
            betydning = linje[1];

            System.out.println(akronym + " || " + betydning);
        }
    } catch(Exception e) {
        System.out.println("Feilen som ble fanget opp: " + e);
    }

我想要的是将首字母缩略词存储在一个String中,将定义存储在另一个String

2 个答案:

答案 0 :(得分:4)

如果您想将拆分限制为仅两部分,请使用split("\\s+", 2)。现在你在每个空格上分割你的线,所以每个单词都存储在不同的位置。

答案 1 :(得分:4)

问题是定义中的空格被解释为附加字段。你只得到linje[1]中定义的第一个单词,因为其他单词在其他数组元素中:

["CPI", "Clock", "Per", "Instruction"]

two-arg overload of split中提供limit参数,停在2个字段:

String[] linje = line.split("\\s+", 2);

E.g。 linje[0]CPIlinje[1]Clock Per Instruction