BF(Bruce Force)算法可以说是模式匹配算法中最简单、最容易理解的一个。原理很简单。其基本思想是从主串的start位置开始与模式串进行匹配,如果相等,则继续比较后续字符,如果不相等则模式串回溯到开始位置,主串回溯到start+1位置,继续进行比较直至模式串的所有字符都已比较成功则匹配成功,或者主串所有的字符已经比较完毕,没有找到完全匹配的字串,则匹配失败。
package com.fox;
/**
* @author huangfox
* @data 2012-7-18
* @email huangfox009@126.com
* @desc
*/
public class BF {
/**
*
* @param t
* 主串
* @param p
* 模式串
*/
public static boolean match(String t, String p) {
char[] tt = t.toCharArray();
char[] pp = p.toCharArray();
int j = 0;
for (int i = 0; i < tt.length - pp.length + 1; i++) {
for (j = 0; j < pp.length; j++) {
if (tt[j + i] == pp[j])
continue;
else
break;
}
if (j == pp.length)
return true;
}
return false;
}
public static void main(String[] f) {
boolean m = BF.match("白日依山尽,黄河入海流!", "黄河");
System.out.println(m);
}
}