我有这种格式的数据:(在文件中)
key1:fieldname1:fieldvalue1
key1:fieldname2:fieldvalue2
key2:fieldname1:fieldvalue1
我需要将其格式化为:
{key1=[{fieldname1=fieldvalue1,fieldname2=fieldvalue2}],key2=[{fieldname1=fieldvalue1}]}
正如您所看到的,它涉及Map和ArrayList。 我实际上需要它在Map和ArrayList中。
请建议。
谢谢
答案 0 :(得分:0)
查找字符串方法“split”以及如何使用它以及如何逐行读取文本文件。通过这种方式,您可以轻松地逐行解析并获取key,fieldname和fieldvalue。
然后你可以按照每行的顺序:
如果地图中不存在密钥,请在其中创建空数组。
将项目添加到指定键中指定的数组
答案 1 :(得分:0)
试试这个:
String[] str = {"key1:fieldname1:fieldvalue1", "key1:fieldname2:fieldvalue2", "key2:fieldname1:fieldvalue1"};
Map<String, List<String>> map = new HashMap<String, List<String>>();
for (String s: str) {
String[] temp = s.split(":");
if (map.get(temp[0]) == null) {
map.put(temp[0], new ArrayList());
}
map.get(temp[0]).add(temp[1] + "=" + temp[2]);
}
此示例假设fieldname1:fieldvalue2
需要存储为字符串。您可以获得高级别的想法,然后根据您的要求进行修改