我正在将一些数据下载到字符串数组中。比方说ImageLinks
。如何检查数组中的项目是否存在?
我在尝试
if(ImageLinks[5] != null){}
但它给了我ArrayIndexOutOfBoundsException
。(因为数组中真的没有5个链接)
为了防止ArrayIndexOutOfBoundsException
,您可以使用以下方法:
if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
// do something
}
由于中的语句if
是从左到右检查的,因此如果数组的大小不正确,您将无法进行空值检查。
对于任何场景都非常容易概括。
写一个静态函数
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
}
在进行查找之前确保数组具有该长度
if(ImageLinks.length > 5 && ImageLinks[5] != null){}
它失败的原因是数组的元素少于 6 个。
首先检查数组是否有正确数量的元素,然后检查该元素是否存在于数组中。
if (ImageLinks.length > 5 && ImageLinks[5] != null) {
// do something
}
是的,元素少于 6 个 ImageLinks[5] 指的是第 6 个元素,因为 java 中的数组索引从 0 开始
if (ImageLinks != null && Stream.of(ImageLinks).anyMatch(imageLink-> imageLink != null)) {
//An item in array exist
}