Arron的博客

导航

查找子串位置

挪用jdk1.7中String类的indexof方法:

    public int indexOf(String source, String target) {
        char[] s=source.toCharArray();
        char[] t=target.toCharArray();
        int sCount=s.length;
        int tCount=t.length;
        char first = t[0];
        int max = sCount - tCount;

        for (int i = 0; i <= max; i++) {
            /* 检查第一个字符*/
            if (s[i] != first) {
                while (++i <= max && s[i] != first);
            }

            /* 如果找到第一个字符,则检查目标字符串中剩下的字符 */
            if (i <= max) {
                int j = i + 1;
                int end = j + tCount - 1;
                for (int k = 0 + 1; j < end && s[j] == t[k]; j++, k++);
                if (j == end) {
                    /* 找到后返回位置 */
                    return i;
                }
            }
        }
        return -1;
    }

 

posted on 2017-05-03 17:30  aaron_shu  阅读(635)  评论(0编辑  收藏  举报