我正在将一些数据下载到String数组中。我们说ImageLinks
。
如何检查数组中的项是否存在?
我正在尝试
if(ImageLinks[5] != null){}
但它给了我ArrayIndexOutOfBoundsException
。 (因为数组中确实没有5个链接)
答案 0 :(得分:34)
要阻止ArrayIndexOutOfBoundsException
,您可以使用以下内容:
if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
// do something
}
当从左到右检查if
中的语句时,如果数组的大小不正确,则不会进行空检查。
对任何情况都很容易概括。
答案 1 :(得分:5)
在执行查找之前确保数组具有该长度
if(ImageLinks.length > 5 && ImageLinks[5] != null){}
答案 2 :(得分:5)
编写静态函数
public static boolean indexInBound(String[] data, int index){
return data != null && index >= 0 && index < data.length;
}
现在,在你的代码中给它打电话
if(indexInBound(ImageLinks, 5) && ImageLinks[5] != null){
//Your Code
}
答案 3 :(得分:1)
它失败的原因是数组少于6个元素。
首先检查数组中是否有正确的元素数,然后检查数组中是否存在元素。
if (ImageLinks.length > 5 && ImageLinks[5] != null) {
// do something
}
答案 4 :(得分:0)
是的,少于6个元素 ImageLinks [5]引用第6个元素,因为java中的数组索引从0开始
答案 5 :(得分:0)
if (ImageLinks != null && Stream.of(ImageLinks).anyMatch(imageLink-> imageLink != null)) {
//An item in array exist
}