我是靠谱客的博主 单纯小松鼠,最近开发中收集的这篇文章主要介绍Java 字符串匹配算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package com.ec.xy.app.algorithm;

import com.xiuye.sharp.X;
import com.xiuye.util.cls.XType;
import com.xiuye.util.log.XLog;

public class KMP {
	
	
	private static int[] getNext(String p) {
		int [] next = XType.newInstance(int[]::new,p.length());
		
		next[0] = -1;
		int i=0,j=-1;
		
		if(i<p.length()) {
			if(j == -1|| p.charAt(i)==p.charAt(j)) {
				++i;
				++j;
				next[i] = j;
//				X.lnS(i,j,next[i]);
			}
			else {
				j = next[j];
//				X.lnS(j);
			}
		}
		
		
		XLog.logArray(next);
		
		return next;
		
	}
	
	
	private static int match(String str,String p) {
		
		
		int i=0;
		int j = 0;
		
		
		int []next = getNext(p);
		
		while(i<str.length()&&j<p.length()) {
			if(j==-1||str.charAt(i)==p.charAt(j)) {
				i++;
				j++;
				
			}else {
				j = next[j];
			}
		}
		
		if(j == p.length()) {
			return i-j;
		}else {
			return -1;
			
		}
	}
	
	public static void main(String[] args) {
		
		X.lnS(match("ABCAAACC", "AAACC"));
		
	}
	
}
-10000
3 	[ line:66 | com.ec.xy.app.algorithm.KMP | KMP.java ]

 

最后

以上就是单纯小松鼠为你收集整理的Java 字符串匹配算法的全部内容,希望文章能够帮你解决Java 字符串匹配算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部