字符串匹配01BF

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

  

原文地址:https://www.cnblogs.com/huangfox/p/2597644.html