字符串匹配相关算法
今天无意间碰到了需要写子字符串匹配得算法,由于以前一直对字符串得KMP算法不太了解,所以今天趁着这个机会正好记录下这三种算法的差异:
- JavaApi实现
- 朴素字符串匹配算法
- KMP算法
Java的API实现子字符串查找:
在Java的String类里面有一个方法是indexof(str,index)
, 这个类的话是可以从一个字符串的指定位置查出是否包含子字符串,若不包含则返回的是-1,若包含的话则返回的是该子字符串在字符串中的索引位置。 那么这个算法是什么原理呢,这个算法的原理就是indexof
会返回匹配到的字符串的索引,那么当这个算法匹配到了一个之后获取返回的索引,然后再加上字符串的长度,最后再在剩下的字符串里面匹配,便会得出所有的字符串个数。
1 | public void test(){ |