package string;
public class BFDemo {
public static int BF(String str,String sub,int pos ){//pos位置决定从主串的什么位置开始寻找
if(pos<0||pos>str.length()||sub.length()>str.length()){
return -1;
}
//开始查找
int i=pos;
int j=0;
//遍历主串和子串
while(i<str.length()&&j<sub.length()){
//判断对应下表是否相同 charAt()寻找索引对应的元素
if(j==-1l||str.charAt(i)==sub.charAt(j)){
i++;
j++;
}else{
i=i-j+1;
j=0;
}
}
//那种情况说明了子串在主串的位置
if(j>=sub.length()){//
return i-j;//子串出现在主串上的某一位置
}else{
return -1;//子串不在主串上
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="abcabcdabc";
String sub="abcd";
int index=BF(str,sub,0);
System.out.println(index);
}
}