package com.cutterpoint.gogogo.program; /** * * . * * @版权:福富软件 版权所有 (c) 2015 * @author xiaof * @version Revision 1.0.0 * @see: * @创建日期:2017年3月15日 * @功能说明: * */ public class BruteForceStringMatch { public static int pipei(String t, String p) { // 循环遍历到t.length-p.length的次数 int cha = t.length() - p.length(); char tt[] = t.toCharArray(); char pp[] = p.toCharArray(); for (int i = 0; i <= cha; ++i) { // 进行匹配循环遍历模式 int j = 0; while (j < p.length() && tt[i + j] == pp[j]) { // 如果匹配成功,那么整体后移 ++j; // 如果j++之后就是到了模式末尾,那么返回位置 if (j == p.length()) return i; // 从第i位开始,模式匹配第一个子串ok } } return -1; } public static void main(String[] args) { String t = "cutterpoint"; String p = "point"; System.out.println(BruteForceStringMatch.pipei(t, p)); } }
这个方法的效率显然无法直视,后面会有相应的改良,比如kmp算法