我一直在四处寻找重建地图,但不能拿出使用Java 8优雅实用的解决方案这是我要解决的问题:功能的解决方案,从字符串
我有“序列化”的地图进入一个字符串,例如
{ type -> 'fruit',
color -> 'yellow',
age -> 5 }
将成为:
type:fruit;color:yellow;age:5
现在,我要重新从字符串的原始地图
Arrays.stream(input.split(";"))
.map(v -> v.split(":"))
.collect(Collectors.toMap(c -> c[0], c -> c.[1]);
注意上面的代码将导致NullPointerException
如果没有“:”在列表中,这可以与解决:
c.length > 1 ? c[1] : c[0]
但是,这感觉不对。任何使用Java8 API的建议或替代方案?
如果在值内有';'或':'会怎么样? –