将字符串转换为地图

时间:2019-07-18 01:58:10

标签: java

我有一个字符串,其中用逗号分隔的值"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}

1 个答案:

答案 0 :(得分:2)

您需要再次用“ =”分隔键和值。

Map<String, String> map = Arrays.stream(names.split(","))
            .map(s -> s.split("="))
            .collect(Collectors.toMap(array -> array[0], array -> array[1]));