文档介绍::...;/***KMP实现类**/lassKMP{ privatelongtime1,time2; privatelongcount; privateint[]getNext(char[]B){ inti,j; intlen=; int[]next=newint[len]; next[0]=.;/***KMP实现类**/lassKMP{ privatelongtime1,time2; privatelongcount; privateint[]getNext(char[]B){ inti,j; intlen=; int[]next=newint[len]; next[0]=0; for(j=1;j<len;j++){ i=next[j-1]; while((i>0)&&(B[i-1]!=B[j-1])){ i=next[i-1]; } next[j]=i+1; } returnnext; } publicvoidkmp(Stringmsg){ Stringstring1=""; Stringpattern="123456"; Stringtest="123"; intplen=(); inttlen=(); char[]p=(); char[]t=(); //char[]t={'a','b','a','a','b','c','a','c'}; int[]n=getNext(t); for(intk=0;k<;k++){ (n[k]); } if(plen<tlen){ ("匹配失败"); } inti=1,j=1,sum=0; //time1=(); time1=(); while(i<=plen&&j<=tlen){ if(j==0||p[i-1]==t[j-1]){ if(j!=0){ sum++; } i++; j++; }else{ sum++; j=n[j-1]; } if(j>tlen){ break; } } if(j>tlen){ string1=string1+"在主串中第" +(i-j+1)+"位匹配成功;"; ("在主串中第" +(i-j+1)+"位匹配成功."); } else{ string1=string1+"匹配失败;"; ("匹配失败."); } //time2=(); time2=(); /* *for(inti=0;i<size2;i++){(""+P[i]);} */ ("KMP算法共匹配了"+sum+"次."); ("KMP算法开始时间为"+time1+".");