查找子串算法java

暴力算法

@searchTarget要查找的子串

@searchFrom查找出处

publicArrayList<Integer>search(StringsearchTarget,StringsearchFrom){

//可能会有多个子串被查到,strPos记录子串的位置

ArrayList<Integer>strPos=newArrayList<Integer>();

inttargetLen=searchTarget.length();

intfromLen=searchFrom.length();

//用j来遍历被查找的子串

intj=0;

//用i来遍历所有子串

for(inti=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

}

}

returnstrPos;

}

相关推荐