专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

算法——模式匹配算法

模式匹配算法:

定义一个主串字符串S=”goodgoogle”,再定义一个模式串字符串T=”google”,然后依次遍历主串中的字符,判断,模式串是否在主串中存在,这种模式串的定位操作通常称为串的模式匹配

代码:

 /**
  *    朴素的模式匹配算法
  * @author wydream
  *
  */

 public class OrdinaryModel {

     public static void main(String[] args) {
         String str="goodgoogle";//在该字符串中查找
         String searchStr="d";//需要查找的字符串
         //将字符串转化为StringBuffer,方便操作
         StringBuffer bfStr=new StringBuffer(str);
         StringBuffer bfSearch=new StringBuffer(searchStr);
         int diff=bfStr.length()-bfSearch.length();
         //如果两个字符串中有一个为空,则重新输入
         if(bfStr.length()==0||bfSearch.length()==0){
             System.out.println("字符串为空,请重新输入");
             return;
         }
         //如果需要查找的字符串的长度大于查找的字符长度,则直接返回,匹配失败
         if(diff<0) {
             System.out.println("匹配失败");  
             return;
         }
         int index=0;
         //从str中第一个字符串开始进行匹配,如果str中余下的字符串长度大于searchStr的长度,则继续进行判断
         while((bfStr.length()-index)>=bfSearch.length()) {
             for(int i=index;i<bfStr.length();i++) {
                 //当两个字符串中字符不等时,则跳出循环
                 if(bfStr.charAt(i)!=bfSearch.charAt(i-index)) {
                     index++;
                     break;
                 }
                 //如果searchStr字符串遍历完了,则说明匹配成功
                 if((i-index)==bfSearch.length()-1) {
                     System.out.println("匹配成功");
                     return;
                 }
             }
         }
         System.out.println("匹配失败");

     }

 }

文章永久链接:https://tech.souyunku.com/36300

未经允许不得转载:搜云库技术团队 » 算法——模式匹配算法

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们