我有以下字符串将其放入地图。
[名称:4/1, IP地址:000.000.00.01,IsOpticalInstalled:false,IsMPEGOutputActive:true,IsAutoNegotiationOn:true,LinkSpeed:AUTO, ,Mirror Of:,DSCP:0,sourceIPOrigin:current-ip-address]
outputPairs41=outputs41.next().trim();
String[] outputPairsArray41=outputPairs41.split(",");
Map meOutputs41 = Stream.of(outputPairsArray41).map(
s -> s.split(":",2))
.collect(Collectors.groupingBy(s -> s[0],
Collectors.mapping(s -> s[1], Collectors.toList())));
LinkSpeed:AUTO之后有一个空格,这破坏了我的代码,并出现了ArrayIndexOutOfBoundsException错误:1.是否有一种方法可以忽略空格或将其添加为null来映射?
我尝试使用split(",",1)/(",",2)
。它没有用。
答案 0 :(得分:3)
在地图之后,收集之前添加一个过滤器:
.map(s -> s.split(":",2))
.filter(arr -> arr.length == 2) // Add this.
.collect(groupingBy(...))