`

查找子串算法java

 
阅读更多
暴力算法
   @searchTarget 要查找的子串
   @searchFrom 查找出处
    public ArrayList<Integer> search(String searchTarget, String searchFrom) {
        //可能会有多个子串被查到,strPos记录子串的位置
        ArrayList<Integer> strPos = new ArrayList<Integer>();
        int targetLen = searchTarget.length();
        int fromLen = searchFrom.length();

        // 用j来遍历被查找的子串
        int j = 0;

        // 用i来遍历所有子串
           for(int i = 0; i < fromLen - targetLen; i++) {

            // 依次匹配,一个字符一个字符的匹配// 如果匹配成功,就返回i的值
            for(j = 0; j < targetLen; j++) {
                if (searchFrom.charAt(i+j) != searchTarget.charAt(j)) {
                    break;
                }
            }
            //如果被查找的子串被遍历到了最后说明找到匹配目标
            if (j == targetLen) {
                strPos.add(i);
                i=i+M
            }
        }
        return strPos;
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics