Phu*_*ong 5 java lambda java-8 java-stream
我有一张地图:
Map<String, String> utilMap = new HashMap();
utilMap.put("1","1");
utilMap.put("2","2");
utilMap.put("3","3");
utilMap.put("4","4");
Run Code Online (Sandbox Code Playgroud)
我把它转换成了一个字符串:
String utilMapString = utilMap
.entrySet()
.stream()
.map(e -> e.toString()).collect(Collectors.joining(","));
Out put: 1=1,2=2,3=3,4=4,5=5
Run Code Online (Sandbox Code Playgroud)
如何在Java8中将utilMapString转换为Map?谁能帮帮我?
use*_*er7 14
拆分字符串,以获取单个映射条目.然后将它们拆分=以获取密钥和值.
Map<String, String> reconstructedUtilMap = Arrays.stream(utilMapString.split(","))
.map(s -> s.split("="))
.collect(Collectors.toMap(s -> s[0], s -> s[1]));
Run Code Online (Sandbox Code Playgroud)
注意:正如Andreas @在评论中所指出的,这不是在地图和字符串之间进行转换的可靠方法
编辑:感谢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}
| 归档时间: |
|
| 查看次数: |
7586 次 |
| 最近记录: |