java - 在抛出 ArrayIndexOutOfBounds 异常之前检查 String[index] 是否为空

标签 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' 只是伪变量而不是实际变量名称

最佳答案

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

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

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

关于java - 在抛出 ArrayIndexOutOfBounds 异常之前检查 String[index] 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54374226/

相关文章:

python - 在 LZW 中压缩时计数?

string - 包含集合中出现次数最多的字符串的最短字符串

java - 计算用于检查 StackOverflowException 的方法调用堆栈大小

java - 通过单击菜单项打开特定文件夹

java - 如何创建 ByteArray 的 base64Binary 表示?

c - 测试元素是否为数组 c

javascript - 另一种获取数组 Javascript 整数的所有组合的方法

JavaScript——无法理解 Array.Map 和 Array.reduce

c# - 使用 string.Format ("{0:00}"格式化字符串

java - RESTful 层次结构以及 JAX RS 类