码迷,mamicode.com
首页 > 编程语言 > 详细

BF匹配算法

时间:2015-04-29 10:03:24      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:字符串匹配   bf   

/*BF算法,即普通模式匹配算法,将字符串与标准模板进行一位一位匹配,
 * 一旦失败,就将字符串第一个字符去掉,重新匹配*/


package pack;
import java.util.Scanner;

public class Main {

    static int count = 0;  //存放匹配的位数

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();   //next有效字符后才可以结束输入,nextLine空行也算字符串
        String s1 = in.next();

        boolean isMatch = bf_match(s,s1);

        if(isMatch)
            sys("match success");
        else
            sys("match error");

    }

    public static boolean bf_match(String s,String s1) {

        sys(s.length()+"---"+s1.length());
        if(s.length()<s1.length()) {       //字符串长度小于匹配字符串长度,结束程序
            //sys("input error or should be end");
            System.exit(0);
        }

        for(int i=0;i<s1.length();i++) {

            if(s1.charAt(i)==s.charAt(i)) 
                count++;      //匹配到就增加1
            else 
            {   
                count=0;  //匹配失败将count清空,防止非连续累加
                s = s.substring(1);   //每次匹配失败就去掉第一个字符,递归匹配   
                bf_match(s,s1);  //递归匹配

            }

        }
        if(count==s1.length())   //成功匹配
            return true;
        else
            return false;

    }
    public static void sys(Object obj) {
        System.out.println(obj);
    }
}

BF匹配算法

标签:字符串匹配   bf   

原文地址:http://blog.csdn.net/sjtu_chenchen/article/details/45344419

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!