在引发ArrayIndexOutOfBounds异常之前检查String [index]是否为空

时间:2019-01-25 23:39:29

标签: java arrays string split

这可能是一个愚蠢的问题,但我错过了一些东西,只是想不通...寻找一种明智的方法来检查给定索引在String[]数组中是否存在

字符串表示K,V对,但有时V可能为空,因此可能的字符串示例为:

Foo1:Bla1
Foo2:Bla2
Foo3:
Foo4:Bla4

public void constructPair(String string) {
    String[] split = string.split(":");
    ...
    if(split[index] != null) { } // nope
    if(!split[index].isEmpty() || !split[index].isBlank() { } //nope
    if(split[index].length() > 1) { } // nope
    ...
}

还是我应该将整个内容包装在try {} catch() {}中?阻止并相应地处理异常?

编辑:为清楚起见,'index'只是伪而非实际的变量名

1 个答案:

答案 0 :(得分:3)

数组索引的范围是0length-1,并且它们始终存在。只要index >= 0index < split.lengthsplit[index]就不会抛出ArrayIndexOutOfBoundsException

因此只需添加一个if语句来检查:

if(index >=0 && index < split.length) {
    [...]
}