• 算法——模式匹配算法


    模式匹配算法:

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

    代码:

     1 /**
     2  *    朴素的模式匹配算法
     3  * @author wydream
     4  *
     5  */
     6 
     7 public class OrdinaryModel {
     8 
     9     public static void main(String[] args) {
    10         String str="goodgoogle";//在该字符串中查找
    11         String searchStr="d";//需要查找的字符串
    12         //将字符串转化为StringBuffer,方便操作
    13         StringBuffer bfStr=new StringBuffer(str);
    14         StringBuffer bfSearch=new StringBuffer(searchStr);
    15         int diff=bfStr.length()-bfSearch.length();
    16         //如果两个字符串中有一个为空,则重新输入
    17         if(bfStr.length()==0||bfSearch.length()==0){
    18             System.out.println("字符串为空,请重新输入");
    19             return;
    20         }
    21         //如果需要查找的字符串的长度大于查找的字符长度,则直接返回,匹配失败
    22         if(diff<0) {
    23             System.out.println("匹配失败");  
    24             return;
    25         }
    26         int index=0;
    27         //从str中第一个字符串开始进行匹配,如果str中余下的字符串长度大于searchStr的长度,则继续进行判断
    28         while((bfStr.length()-index)>=bfSearch.length()) {
    29             for(int i=index;i<bfStr.length();i++) {
    30                 //当两个字符串中字符不等时,则跳出循环
    31                 if(bfStr.charAt(i)!=bfSearch.charAt(i-index)) {
    32                     index++;
    33                     break;
    34                 }
    35                 //如果searchStr字符串遍历完了,则说明匹配成功
    36                 if((i-index)==bfSearch.length()-1) {
    37                     System.out.println("匹配成功");
    38                     return;
    39                 }
    40             }
    41         }
    42         System.out.println("匹配失败");
    43         
    44     }
    45     
    46 }
  • 相关阅读:
    c语言求最大公约数和最小公倍数(转)
    git 提交去除每次输账号密码
    phpstorm使用zen coding 快速编辑补全html/css代码
    YII2.0使用ActiveForm表单(转)
    php面向对象之trait
    php操作redis(转)
    模块
    列表生成式 与生成器表达式
    三元表达式,递归,内置函数
    面向过程的编程思想
  • 原文地址:https://www.cnblogs.com/wugongzi/p/11199952.html
Copyright © 2020-2023  润新知