算法思想:
从主串的第一个字符开始与模式串的第一个字符开始比较
如果相同,主串与字串都开始比较下一个
如果不相同
模式串返回到最初的位置,主串返回到主串的位置减去模式串位置加一的位置
依次类推,直到在主串中找到与模式串匹配的字符串。
package String;
public class Brute_Force {
public static void main(String[] args) {
String main="ahsdghsfdhfksjdjjh";
String sub="hsf";
int i = indexOf(main, sub);
System.out.println(i);
}
public static int indexOf(String mainStr,String pattern){
if(mainStr != null && pattern != null && pattern.length() > 0 && mainStr.length() > pattern.length()){
int i=0,j=0;//i,j为目标串和模式串的当前字符小标
//当目标串与模式串的第一个字符匹配时,i++,j++
while (i<mainStr.length() && j<pattern.length()){
if (mainStr.charAt(i)==pattern.charAt(j)){
i++;
j++;
}else{//否则i返回到开始位置的后一位,j下标为0
i=i-j+1;
j=0;
}
}
if (j==pattern.length()){//匹配成功
return i-j;
}
}
return -1;
}
}