我正在试图制作一个看起来像这样的清单 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
答案 0 :(得分:5)
页面已初始化为长度为0. String[] Pages = new String[47];
将解决您的问题。
答案 1 :(得分:3)
更清洁,更好的方法是使用Collection
......
尝试使用列表
List<String> aList = new ArrayList<String>();
for(int i=0 ; i<47 ; i++ ){
aList.add("Page :"+i);
}
集合将为数组提供巨大的灵活性.........
答案 2 :(得分:3)
正如我在my comment中提到的,
ArrayIndexOutOfBoundsException
是由Pages
声明为{ }
,因此没有可索引元素的事实引起的 - 它的长度为0
。< / p>评估
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);
}
答案 3 :(得分:0)
这是因为您的数组尚未初始化为47,而是0.尝试此:
String[] Pages = new String[47];
我希望这会有所帮助。