如何使用Java拆分以下字符串?
{525={174=2, 133=1, 182=1}}
可以有多条与上述相似的行。它们中的每一个都是外部HashMap的组合。 假设还有另一条线
{500={100=2, 150=1, 200=1}}
所需的结构将是
525 -> 174 -> 2
133 -> 1
182 -> 1
500 -> 100 -> 2
150 -> 1
200 -> 1
我希望将数字放在Hashmap>中。
以下是我的尝试:
String s="{525={174=2, 133=1, 182=1}}";
HashMap<Integer, HashMap<Integer, Integer>> fullMap = new HashMap<Integer, HashMap<Integer, Integer>>();
Integer key, innerKey, innerValue;
key = Integer.parseInt(s.split("=")[0].replace("{",""));
我是Java的新手,不知道如何继续前进。
答案 0 :(得分:4)
试试这个
String[] a = s.replaceAll("[{}]", "").split("=", 2);
int key = Integer.parseInt(a[0].trim());
HashMap<Integer, Integer> innerMap = new HashMap<>();
for (String e : a[1].split(",")) {
a = e.split("=");
innerMap.put(Integer.parseInt(a[0].trim()), Integer.parseInt(a[1].trim()));
}
fullMap.put(key, innerMap);