如何将{'A':"1",'B':"2",'C':"3"}
转换为java中的Ctrl + C
等地图类型对象?是否有任何现有的API可以执行此操作?
答案 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)));
}