-1

次のようなリストを作成しようとしていますPages=["Page 1"、 "Page 2" ... "Page 48"]

そしてこれを使って、次の行に何か問題がありますか?

String[] Pages = {};
    int i = 0;
    for (; i < 47; i++) {
        String p = Integer.toString(i+1);
        Pages[i] = ("Page " + p);
    }

それは私にarrayIndexOutOfBoundsExceptionを与え続けます

4

4 に答える 4

5

ページは長さ0で初期化されましString[] Pages = new String[47];た。問題は解決します。

于 2012-08-28T17:49:54.947 に答える
3

よりクリーンでより良い方法は、使用することですCollection.....。

リストを使用してみてください

List<String> aList = new ArrayList<String>();

for(int i=0 ; i<47 ; i++ ){


    aList.add("Page :"+i);

 }

コレクションは、配列に対して非常に高い柔軟性を提供します........。

于 2012-08-28T17:51:50.153 に答える
3

コメントで述べたように、

は、であると宣言されているため、インデックス可能な要素がなく、長さが。ArrayIndexOutOfBoundsExceptionであることが原因です。Pages{ }0

例外はPages[i]、を実行するときではなく、評価するときにスローされ"Page " + pます。修正するには、代わりに試してくださいString[] Pages = new String[47];:-)

または、Ashがコメントで述べたように、List<String>代わりに必要ですか?

final List<String> pages = new ArrayList<String>(47);
for (int i = 1; i <= 47; ++i) {
  pages.add("Page " + i);
}
于 2012-08-28T17:52:26.513 に答える
0

これは、配列が0ではなく47に初期化されていないためです。これを試してください。

String[] Pages = new String[47];

これがお役に立てば幸いです。

于 2012-08-28T17:50:57.520 に答える