import org.junit.Test;
/**
* 一个子字符串在字符串中的匹配
* @author yachao
*/
public class TestRegx {
@Test
public void getTest(){
String str = "12123";
String subStr = "123";
int start = test(str,subStr);
System.out.println("第一个开始的位置在第 "+(start+1)+" 个字符");
}
public int test(String str,String subStr){
char[] strChar = str.toCharArray();
char[] subStrChar = subStr.toCharArray();
Integer start = null;
boolean flag = false;
for(int i=0;i<strChar.length&&flag==false;i++){
int mark = 0;
for(int j=0;j<subStrChar.length;j++){
if(i+mark<strChar.length&&strChar[i+mark]==subStrChar[j]){
mark++;
}else{
break;
}
if(mark == subStrChar.length){
flag = true;
start = i;
break;
}
}
}
return start == null ?-1:start;
}
}
输出的结果是:
第一个开始的位置在第 3 个字符。