使用Guava Splitter
将下面的字符串转换为Map <Key, Set<String>>
的最佳方法是什么
String pairs = "cat:01,02,03;dog:AA,BB,CC;fish:A1,A2";
这是我尝试过的:
String pairs = "cat:01,02,03;dog:AA,BB,CC;fish:A1,A2";
Map<String, Set<String>> pairMap = new HashMap<String, Set<String>>();
Map<String, String> map = Splitter.on(';')
.withKeyValueSeparator(':')
.split(pairs);
map.forEach((key, value) -> {
pairMap.put(key, Splitter.on(',').splitToList(value).stream().collect(Collectors.toSet()));
});
pairMap.forEach((key, valueSet) ->{
System.out.println("key: "+key);
valueSet.forEach(value ->{
System.out.println(value);
});
});
https://stackoverflow.com/questions/53730053
复制相似问题