我想在读取我正在使用的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
中答案 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]
为CPI
,linje[1]
为Clock Per Instruction
。