java实现字符串暴力匹配
java实现字符串暴力匹配
/**
* 暴力匹配
*
* @param str1 需要找的总字符串
* @param str2 需要找到的字符串
* @return 找到的字符串的下标
*/
private static int violence(String str1, String str2) {
char[] s1 = str1.toCharArray();
char[] s2 = str2.toCharArray();
int s1Len = s1.length;
int s2Len = s2.length;
// 指针,分别指向两个字符串
int i = 0;
int j = 0;
// 保证匹配时不越界
while (i < s1Len && j < s2Len) {
// 第一个字符匹配上了
if (s1[i] == s2[j]) {
++i;
++j;
} else {
i -= (j - 1);
j = 0;
}
}
// 判断是否成功
if (j == s2Len) {
return i - j;
} else {
return -1;
}
}