24

一部のデータを文字列配列にダウンロードしています。としましょうImageLinks。配列内のアイテムが存在するかどうかを確認するにはどうすればよいですか?

やっています

if(ImageLinks[5] != null){}

しかし、それは私に与えますArrayIndexOutOfBoundsException。(実際には配列に 5 リンクがないため)

4

6 に答える 6

35

を防ぐにはArrayIndexOutOfBoundsException、次を使用できます。

if(ImageLinks.length > 5 && ImageLinks[5] != null)
{
    // do something
}

のステートメントはif左から右にチェックされるため、配列のサイズが正しくない場合は null チェックに到達しません。

どんなシナリオでも一般化するのはとても簡単です。

于 2012-10-15T14:19:44.130 に答える
8

静的関数を書く

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
}
于 2012-10-15T14:25:58.007 に答える
6

検索を行う前に、配列がその長さであることを確認してください

if(ImageLinks.length > 5 && ImageLinks[5] != null){}
于 2012-10-15T14:19:35.667 に答える
1

失敗する理由は、配列の要素が 6 未満であるためです。

最初に配列の要素数が正しいことを確認してから、要素が配列内に存在することを確認します。

 if (ImageLinks.length > 5 && ImageLinks[5] != null) {
     // do something
 }
于 2017-01-13T22:17:03.150 に答える
0

はい、要素は 6 つ未満です ImageLinks[5] は、Java の配列インデックスが 0 から始まるため、6 番目の要素を参照します

于 2012-10-15T14:19:47.443 に答える