如下代码,进行串模式匹配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)
请问这是为什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。