首先我们先来看一下indexOf的源码,indexOf的使用方式比较多,这是我们以一个形参的为例。现在我们回过头看看indexOf的下半部分源码,我相信其实不用解释了。我们要将模式串和sourceSize - targetSize + 1 个字符串相比,我们可以先将sourceSize - targetSize + 1个模式串进行哈希计算。与哈希计算后的模式串相比较,如果相等则存在,对于哈希冲突在一般实现中概率比较低,不放心的话我们可以在哈希值相等时候再比较一次原字符串确保准确,哈希的冲突概率也和哈希算法的本身设计有关。这样的话,我们首先计算AB的哈希值 与 模式串的相比较,然后计算BC的哈希值与模式串相比较,直到比较出相等的返回下标即可。

浅谈JAVA字符串匹配算法indexOf函数的实现方法

浅谈JAVA字符串匹配算法indexOf函数的实现方法

浅谈JAVA字符串匹配算法indexOf函数的实现方法

浅谈JAVA字符串匹配算法indexOf函数的实现方法