为什么我得到ArrayIndexOutOfBoundsException

时间:2014-06-23 19:42:35

标签: java arraycopy

ArrayList<String> al = new ArrayList(Arrays.asList(Answers));
Collections.shuffle(al);
char answer=(char) (al.indexOf(right)+65);
for(int i=0;i<al.size();i++){
    al.set(i, ((char)(i+65))+")"+al.get(i));
}
String[] s=al.toArray(new String[al.size()]);
int n = s.length+1;
String[] ret = new String[n];
System.arraycopy(s,0,ret,1,n);
ret[0]=answer+"";
return ret;

我希望它能够正常工作而不会崩溃,但我得到了这个:&#34;线程中的异常&#34; main&#34; java.lang.ArrayIndexOutOfBoundsException&#34;在这一行:

System.arraycopy(s,0,ret,1,n);

我不知道为什么,欢迎任何帮助。

1 个答案:

答案 0 :(得分:5)

我想你想要

System.arraycopy(s, 0, ret, 1, s.length);

目前,您正在尝试从n复制s.length + 1(等于s)元素。