如何忽略哈希图中的空值?

时间:2018-10-31 17:58:03

标签: java

我有以下字符串将其放入地图。

  

[名称: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)。它没有用。

1 个答案:

答案 0 :(得分:3)

在地图之后,收集之前添加一个过滤器:

.map(s -> s.split(":",2))
.filter(arr -> arr.length == 2)  // Add this.
.collect(groupingBy(...))