【发布时间】:2015-07-29 08:21:35
【问题描述】:
这是文本文件:
#Person
PRIM_KEY=personId
SEX=gender
YEARS=age
NAME=fullName
#Automobil
PRIM_KEY=registrationNumber
MAKE=manufacturer
TYPE=model
读取文件:
Scanner scanner = new Scanner(new FileReader("C:/workspace/column-mapping.txt"));
当我遇到#Person时,在下面的地图中定义:
Map<String, String> personMap = new LinkedHashMap<String, String>();
我想在它下面存储键值对。
所以将这些键值对存储在personMap:
PRIM_KEY=personId
SEX=gender
YEARS=age
NAME=fullName
同样当我遇到#Automobil,在下面的地图中
Map<String, String> automobilMap = new LinkedHashMap<String, String>();
我希望存储这些键值对:
PRIM_KEY=registrationNumber
MAKE=manufacturer
TYPE=model
当我读取文件时,如何根据本例中的#Person 和#Automobil 将这些键值对存储在两个不同的映射中?
编辑示例代码:
Scanner scanner = new Scanner(new FileReader("C:/workspace/column-mapping.txt"));
Map<String, String> personMap = new LinkedHashMap<String, String>();
Map<String, String> automobilMap = new LinkedHashMap<String, String>();
String line;
while (scanner.hasNext()) {
line = scanner.next();
if (!line.startsWith("#") && !line.isEmpty()) {
String[] columns = line.split("=");
personMap.put(columns[0], columns[1]);
}
}
System.out.println(personMap);
这样我可以将所有键值对放在一个映射personMap 中。但根据部分,我希望能够将其放在不同的地图中。
【问题讨论】:
-
你的问题是?
-
嗯...我建议您编写一些代码来满足您发布的要求。或者……你付钱给为你写代码的人。我会做...
-
您已经拥有了 90% 的所需代码 - 您只需要记住您当前添加到的地图并根据“#”字符后面的文本切换该地图引用。
标签: java dictionary java.util.scanner text-parsing