将字符串转换为映射

我有一个带有逗号分隔值的字符串"name1=John,name2=Jim,name3=Tina"(这可以增长),我想在一个带有键值对的 Map 中转换为{name1=John,name2=Jim,name3=Tina}.

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}


侃侃无极
浏览 107回答 1
1回答

一只名叫tom的猫

您需要再次用“=”分隔以分隔键和值。Map<String,&nbsp;String>&nbsp;map&nbsp;=&nbsp;Arrays.stream(names.split(",")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(s&nbsp;->&nbsp;s.split("=")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toMap(array&nbsp;->&nbsp;array[0],&nbsp;array&nbsp;->&nbsp;array[1]));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java