温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中怎么用BF算法实现字符串匹配

发布时间:2021-12-20 14:45:25 来源:亿速云 阅读:149 作者:iii 栏目:大数据

本篇内容介绍了“Java中怎么用BF算法实现字符串匹配”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

概念

单模式字符串匹配就是一个字符串a和另一个字符串b进行匹配,一般而言,a的长度远大于b,我们在a中查找是否包含b。我们将字符串a称为主串,字符串b称为模式串。

BF算法

BF算法成为暴力匹配算法,又叫做朴素匹配算法。也是最简单的,我们经常用到的算法。最简单的方法就是每次比对m个字符,最坏情况下比较n-m+1次,BF算法的最坏情况时间复杂度为O(n*m)。

步骤

1 模式串一个个与主串字符比较,如果相同接着比较,不相同则主串移动一位,接着和模式串从头开始一个个比较

package com.github.strings;public class bf {    public static int search(String str,String pat){        int sLen = str.length();// 主字符串        int pLen = pat.length();// 模式串长度        // 需要匹配的次数        for (int i=0;i<=sLen-pLen;i++){            int j ;            // 遍历模式串            for (j=0;j<pLen;j++){                if (pat.charAt(j)!=str.charAt(i+j)){                    break;                }            }            // 如果j移动到模板末尾了 说明匹配成功了            if (j==pLen) return i ;        }        return -1;    }    public static void main(String[] args) {        System.out.println(search("helloWorld","hello"));        System.out.println(search("helloWorld","World"));        System.out.println(search("aaaaaaab","aaab"));        System.out.println(search("helloWorld","lo"));        System.out.println(search("aacaaab","aaab"));    }}

“Java中怎么用BF算法实现字符串匹配”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI