为什么我得到ArrayIndexOutOfBoundsException

ilg*_*zer -1 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;
Run Code Online (Sandbox Code Playgroud)

我希望它工作而不是崩溃,但我得到了这个:"线程中的异常"主"java.lang.ArrayIndexOutOfBoundsException"在这一行:

System.arraycopy(s,0,ret,1,n);
Run Code Online (Sandbox Code Playgroud)

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

Lou*_*man 5

我想你想要的

System.arraycopy(s, 0, ret, 1, s.length);
Run Code Online (Sandbox Code Playgroud)

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