字符串比较非常好理解,比如有一个字符串"abcacabdc" ,我们需要查找里边是否包含"abd"这个字符串
我们把"abcacabdc" 分别放到主数组中,把"abd"放到查找数组中如下图所示。
好了只要我们用一个循环一次次比较,一次次位移就可以。 比如 abc 先和abd比较 一个一个字符比较 然后 在bca和abd,依次类推。
我们看一下代码,可以跑一下
注意:这里边我们正常应该是把字符串放到一个字符串数组中,但是我们没有这样做,而直接用字符串charAt()方法道理一样。
应该放到字符数组中比较合适。
public static void main(String[] args) { String leadstr = "abcacabdc"; String target = "abd"; System.out.println(indexOf(leadstr, target)); } /** * 构建一个散列表256位的包括所有字母的ASCII字母 */ private static final int ASCIISIZE = 256; static int indexOf(String leadstr, String target) { int leadLeng = leadstr.length(); int targetLeng = target.length();