1. 程式人生 > >串-樸素的模式匹配演算法(java)

串-樸素的模式匹配演算法(java)

樸素的模式匹配演算法實現Java中indexOf(String str, int fromIndex);
即字主字串中查詢目標字串並返回指標地址;

public class StringUtils {

   public static int indext(String src, String target) {
        return indext(src,target,0);
    }

    public static int indext(String src, String target, int fromIndex) {
        return indext(src.toCharArray(), src.length(), target.toCharArray(), target.length(), fromIndex);
    }

    //樸素模式匹配演算法
static int indext(char[] s, int slen, char[] t, int tlen, int fromIndex) { if (fromIndex < 0) { fromIndex = 0; } if (tlen == 0) { return fromIndex; } if (slen == 0) { return -1; } int i = fromIndex; int
j = 0; while (i <= slen && j <= tlen) { /* cycle compare */ if (s[i] == t[j]) { ++i; ++j; } else { /* point back last position */ i = i - j + 1; j = 0; } } if
(j > tlen) { /* found target string retun first index position*/ return i - j; } else { /* can't find target string and retun -1 */ return -1; } } }