package sort;
import java.util.Scanner;
public class BFAPP {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String str="";
String flag="";
Scanner input=new Scanner(System.in);
System.out.println("请输入字符串");
str=input.nextLine();
System.out.println("请输入对比字符");
flag=input.nextLine();
input.close();
int end=BF(str,flag);
if(end==-1) {
System.out.println("无匹配项目");
}else {
System.out.println("字符串首字母下标为:"+end);
}
}
public static int BF(String str,String flag) {
char str1[]=str.toCharArray();//字符串
char flag1[]=flag.toCharArray();//对比字符
int i=0;
int j=0;
while(i<str1.length&&j<flag1.length) {
if(str1[i]==flag1[j]) {//如果字母相同,比较下一个字母
i++;
j++;
}else {
i=i-j+1;
j=0;
}
}
if(j==flag1.length) {//最后一个字母比较相同时,会执行j++,此时j==flag1.length
return i-j;
}else {
return -1;
}
}
}
执行结果: