java正则表达式匹配多个字符串,java正则表达式匹配多个字符串

  java正则表达式匹配多个字符串,java正则表达式匹配多个字符串

  

目录

java实现字符串匹配暴力匹配KMP算法

 

  

java实现字符串匹配

 

  

暴力匹配

/** * 暴力匹配* * @param str1需要找的总字符串* @param str2需要找到的字符串* @返回找到的字符串的下标*/私有静态整数暴力(字符串str1,字符串str 2){ char[]S1=str 1。tochararray();char[]S2=str 2。tochararray();int s1Len=S1 . length int s2Len=s2.length//指针,分别指向两个字符串int I=0;int j=0;//保证匹配时不越界while (i s1Len j s2Len) { //第一个字符匹配上了if(S1[I]==S2[j]){ I;j;} else { I-=(j-1);j=0;} } //判断是否成功if(j==s2Len){ return I-j;} else { return-1;}

 

  

KMP算法

/** * KMP算法* * @param str1源字符串* @param str2子串* @param next匹配值表* @返回对应下标,没有为-1 */private static int KMP(String str 1,String str2,int[] next) { for (int i=0,j=0;我字符串1。长度();i) { while (j 0 str1.charAt(i)!=str 2。charat(j)){ j=next[j-1];} if(str 1。charat(I)==str 2。charat(j)){ j;if(j==str 2。length()){ return I-j 1;} return-1;} * @返回目的地的部分匹配表private static int[]getkmpNext(String dest){ int length=dest。长度();int[]next=new int[length];next[0]=0;for (int i=1,j=0;英语字母表中第九个字母长度;i ) { while (j 0 dest.charAt(i)!=目的地。charat(j)){ if(dest。charat(I)==dest。charat(j)){ next[I]=j;下一个返回;到此这篇关于爪哇实现字符串匹配的文章就介绍到这了,更多相关爪哇岛字符串匹配内容请搜索盛行信息技术以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行它!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: