我正在做一個代碼,使一些字符串中的一些獨特的整數,我突然遇到了一個異常,我不明白這裏的問題是什麼,因爲我幾乎完成。現在發生了什麼,我不知道。Java字符串索引超出邊界同時作出字符串
這裏是我的代碼:
String[] res = new String[12];
int[] ia = {1, 6, 9};
int[] ai = {97, 79, 8};
int[] a = new int[10];
for(int i = 0; i < a.length; i++){
a[i] = (ia[new Random().nextInt(3)]^(ai[new Random().nextInt(3)] * i));
for(int j = 0; j < res.length; j++){
if(a[i] >= j){
res[j * i] = "J:" + (a[i] * a[new Random().nextInt(10)]); //exception
} else if(a[i] <= j){
res[j * i] = "J:" + (-(a[i] * a[new Random().nextInt(10)]));
}
}
}
這裏是拋出的異常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
at testy.main(unique.java:15)
陣列的極限是基於*零*。您正在訪問第13個元素。尋找這個許多dups之一。 –
這段代碼有這麼多的錯誤,我甚至找不到一個好的代碼行,除了數組的聲明.... –
@MatejSpili說什麼。首先,你不應該創建像這樣的新Random()對象。你最終會得到無數次完全相同的數字。在循環開始時創建一個,並在那裏使用相同的一個。 –