【发布时间】:2013-10-12 03:07:09
【问题描述】:
如何使用 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 新手,不知道如何继续。
【问题讨论】:
-
您能否在 HashMap 中为输入“{525={174=2, 133=1, 182=1}}”显示您期望的键和值?
-
525 将是 fullMap 的键,174、133、182 将是内部映射的键,而 2,1,1 将分别是它们的值。可以有更多类似上面的字符串。这些将是 fullMap 的其他键和值。
-
请提供输入字符串的语法,并说明您希望如何拆分它。单个示例不是正确的需求规范。
-
这是否总是用于列表中的列表(即深度不超过两个列表)?或者它可以更深吗?如果是这样,您将不得不仔细计算
{和}(基本上是编写一个下推自动机)。 -
这有点像 JSON 格式,而且你有嵌套。它无法在“平面”地图中合理地表示。