이것은 "Coding Interview"라는 책에서 질문입니다. 자바 코드가 있는데, 왜 이것이 ArrayIndexOutOfBoundsException
이 될까요? 방금 책에서 복사했습니다.ArrayIndexOutOfBoundsException의 원인은 무엇입니까?
class Q1_3{
public static void removeDuplicates(char[] str){
if(str==null) return;
int len=str.length;
if(len<2) return;
int t=1;
for(int i=1;i<len;++i){
int j;
for(j=0;j<t;++j){
if(str[i]==str[j])
break;
}
if(j==t){
str[t]=str[i];
++t;
}
}
str[t]=0; //why ?
}
public static void main(String[] args){
char ss1[] = {'a','b','c','d'};
char ss2[] = {'a','a','a','a'};
char ss3[] = {};
char ss4[] = {'a','a','b','b'};
removeDuplicates(ss1);
removeDuplicates(ss2);
removeDuplicates(ss3);
removeDuplicates(ss4);
System.out.println(ss1);
System.out.println(ss2);
System.out.println(ss3);
System.out.println(ss4);
}
}
왜냐하면 어떤 점에서는't> = str.length'이기 때문입니다. 이유를 알기 위해 코드를 디버깅하십시오. – Maroun
최상의 오류 로그를 게시하십시오. – jagmohan
원인 * *? – Raedwald