简体   繁体   English

为什么我得到ArrayIndexOutOfBoundsException

[英]Why am i getting ArrayIndexOutOfBoundsException

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;

I expected it to work and not crash but i am getting this instead:"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException" on this line: 我希望它能正常工作并且不会崩溃,但是我却得到了它:“”线程“ main”中的异常“ java.lang.ArrayIndexOutOfBoundsException”在此行上:

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

I don't know why and any help is welcome. 我不知道为什么,欢迎任何帮助。

I think you wanted 我想你想要

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

Currently, you're trying to copy n (which equals s.length + 1 ) elements out of s . 当前,您正在尝试从s复制n元素(等于s.length + 1 )。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM