![](/img/trans.png)
[英]Why does java.lang.ArrayIndexOutOfBoundsException occur?
[英]Why does java.lang.ArrayIndexOutOfBoundsException happen on this piece of code?
public boolean felGissningar(char gi, int antalfel){
if(antalfel>0){
int test = 0;
for (int i = 0; i<felGiss1.length; i++){
if(gi == felGiss1[i]){
test+=1;
}
}
felGiss2 = new char[antalfel];
for (int i = 0; i<felGiss1.length; i++){
felGiss2[i]=felGiss1[i];
}
felGiss1 = new char[antalfel+1];
for (int i =0;i<antalfel; i++){
felGiss1[i]=felGiss2[i];
}
felGiss1[antalfel] = gi;
System.out.println("1: "+String.valueOf(felGiss1));
System.out.println("2: "+String.valueOf(felGiss2));
if(test>0){
return false;
} else {
return true;
}
}else {
felGiss1 = new char[1];
felGiss1[0]=gi;
return true;
}
}
antalfel 表示不正確答案的數量
在此 boolean 一旦說 java.lang.ArrayIndexOutOfBoundsException 后返回 false
我試圖做的是不允許兩次出現相同的錯誤字符。
這邊:
felGiss2 = new char[antalfel];
for (int i = 0; i<felGiss1.length; i++){
felGiss2[i]=felGiss1[i];
}
由於您沒有發布felGiss1
的創建位置,因此如果felGiss1.length
大於felGiss2.length
則它將產生異常。 請改為:
felGiss2 = new char[antalfel];
for (int i = 0; i<felGiss1.length && i < fellGiss2.length; i++){
felGiss2[i]=felGiss1[i];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.