如下代码,进行串模式匹配BF算法的java实现
class BF{
public int bF(char S[],char T[]){
int i=0,j=0,index=0;
while(S[i]!='\0'&&T[j]!='\0'){
if(S[i] == T[j]){
i++;
j++;
}else{
index++;
i = index;
j = 0;
}
}
if(T[j]!='\0'){
return index+1;
}else{
return 0;
}
}
}
public class String_matching {
public static void main(String[] args) {
BF bf = new BF();
String str1 = "ababacbc";
String str2 = "bacb";
char c1[] = str1.toCharArray();
char c2[] = str2.toCharArray();
bf.bF(c1, c2);
}
}
运行后抛出如下异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at BF.bF(String_matching.java:4)
at String_matching.main(String_matching.java:28)
请问这是为什么?谢谢