[英]How to get an HashMap<String,ArrayList<String>> from a given String Java
所以我收到了一个包含 HashMap< String
HashMap<String, ArrayList<String>>
的字符串,我该如何揭穿它,直到我从那个String
得到一个新的HashMap
。
这是字符串:
String s= "{Lobby1=[John, Ana], Lobby2=[Tomas, Peter]}"
请记住,字符串可能会更长,具体取决于条目或放置的数量
这就是我为骑“{}”所做的事情:
s=s.substring(1,s.length()-1);
这让我:
Lobby1=[John, Ana], Lobby2=[Tomas, Peter]
我现在不知道该怎么做,如何从中获取 Arraylist 和 String 。
像这样的东西怎么样:
private static final Pattern RE = Pattern.compile("^\\s*([^=\\[\\]]+)\\s*=\\s*\\[([^\\]]*)\\]\\s*(?:,(.*))?$");
public static void main(String args[]) {
String s = "Lobby1=[John, Ana], Lobby2=[Tomas, Peter]";
Map<String,List<String>> map = new HashMap<>();
Matcher matcher = RE.matcher(s);
while (matcher.matches()) {
String name = matcher.group(1);
List<String> list = Arrays.asList(
matcher.group(2).split("\\s*,\\s*"));
map.put(name, list);
String tail = matcher.group(3);
if (tail == null) {
break;
}
matcher = RE.matcher(tail);
}
System.out.println(map);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.