我有一张 map :
Map<String, String> utilMap = new HashMap();
utilMap.put("1","1");
utilMap.put("2","2");
utilMap.put("3","3");
utilMap.put("4","4");
我把它转换成一个字符串:
String utilMapString = utilMap
.entrySet()
.stream()
.map(e -> e.toString()).collect(Collectors.joining(","));
Out put: 1=1,2=2,3=3,4=4,5=5
Java8中如何将utilMapString转为Map?谁能帮帮我?
最佳答案
按,
拆分字符串以获得单独的映射条目。然后用=
拆分得到key和value。
Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
.map(s -> s.split("="))
.collect(Collectors.toMap(s -> s[0], s -> s[1]));
注意:正如 Andreas@ in the comments 指出的那样, 这不是在映射和字符串之间进行转换的可靠方法
编辑: 感谢 Holger 的建议。
使用 s.split("=", 2)
确保数组永远不会大于两个元素。这将有助于不丢失内容(当值具有 =
时)
示例:当输入字符串为 "a=1,b=2,c=3=44=5555"
你会得到{a=1, b=2, c=3=44=5555}
早些时候(只使用s.split("=")
)会给出
{a=1, b=2, c=3}
关于Java 8 : How to convert String to Map<String, 字符串>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52695410/