如何使用Java拆分以下字符串?

时间:2013-10-05 00:31:19

标签: java string split hashmap

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

1 个答案:

答案 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);