在java中将字符串转换为Map

时间:2016-04-09 09:59:14

标签: java json dictionary

如何将{'A':"1",'B':"2",'C':"3"}转换为java中的Ctrl + C等地图类型对象?是否有任何现有的API可以执行此操作?

2 个答案:

答案 0 :(得分:3)

您可以简单地使用split()并执行以下操作:

public static void main (String[] args) throws Exception {
    String input = "{A=1,B=2,C=3}";
    Map<String, Integer> map = new HashMap<>();
    for(String str : input.substring(1,input.length() - 1).split(",")) {
        String[] data = str.split("=");
        map.put(data[0],Integer.parseInt(data[1]));
    }
    System.out.println(map);
}

输出:

{A=1, B=2, C=3}

答案 1 :(得分:0)

正则表达式非常适合从格式良好的字符串中捕获文本。如下所示:

Map<String,Integer> map = new HashMap<>();
Pattern pattern = Pattern.compile("(\\w+)=(\\d+)");
Matcher matcher = pattern.matcher(input);
for (int g = 1; g < matcher.groupCount(); g += 2) {
    map.put(matcher.group(g), Integer.parseInt(matcher.group(g+1)));
}