我想忽略ArrayIndexOutOfBoundsException:0。如果port1 [1]不为空,我想走得更远。
if (port1[1] != null){
String[] inputArray1=port1[1].split(",");
Map meInputs1 = Stream.of(inputArray1)
.map(s -> s.split(":",2))
.collect(Collectors.groupingBy(s -> s[0],
Collectors.mapping(s -> s[1],
Collectors.toList())));
}
我在代码的第一行出现此错误
java.lang.ArrayIndexOutOfBoundsException: 0
如果我指向的项目为空,如何跳过此步骤?
答案 0 :(得分:2)
通过添加条件逻辑以防止其发生,您可以“忽略ArrayIndexOutOfBoundsException:0” 。
在这种情况下,这意味着您要检查s.split(":",2)
的结果是否为2个值的数组,如果不是,则忽略/跳过。您可以通过致电filter()
来做到这一点:
Map<Object, List<Object>> meInputs1 = Stream.of(inputArray1)
.map(s -> s.split(":",2))
.filter(s -> s.length >= 2) // ignore entries in inputArray1 without a ':'
.collect(Collectors.groupingBy(s -> s[0],
Collectors.mapping(s -> s[1],
Collectors.toList())));