java 算法实现字符串的匹配

来源:互联网 发布:睡眠工作 知乎 编辑:程序博客网 时间:2024/06/07 06:55
import org.junit.Test;/** * 一个子字符串在字符串中的匹配 * @author yachao */public class TestRegx {@Testpublic 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 个字符。

0 0