我有一个字符串,其中用逗号分隔的值"name1=John,name2=Jim,name3=Tina"
(可以增长),我想在键值对为{name1=John,name2=Jim,name3=Tina}
的Map中进行转换。
String names = "name1=John,name2=Jim,name3=Tina";
Map<String, String> map = Pattern.compile("\\s*-\\s*")
.splitAsStream(externalResourcePath.trim())
.map(s -> s.split(","))
.collect(Collectors.toMap(p -> p[0], p -> p[1]));
我得到的输出为{name1=John=name2=Jim}
,而我希望输出为{name1=John,name2=Jim,name3=Tina}
答案 0 :(得分:2)
您需要再次用“ =”分隔键和值。
Map<String, String> map = Arrays.stream(names.split(","))
.map(s -> s.split("="))
.collect(Collectors.toMap(array -> array[0], array -> array[1]));