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); } }