-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

正如我在评论中提到的,

是由声明为的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 回答
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 回答
0

这是因为您的数组尚未初始化为 47,而是 0。试试这个:

String[] Pages = new String[47];

我希望这有帮助。

于 2012-08-28T17:50:57.520 回答