2

如何使用 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 新手,不知道如何继续。

4

1 回答 1

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);
于 2013-10-05T00:52:53.417 回答