繁体   English   中英

如何获取 HashMap <String,ArrayList<String> &gt; 从给定的字符串 Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM