package com.ripplechan.mybatis;
import org.apache.commons.lang3.StringUtils;
public class Math {
public static void main(String[] args) {
math("8ab", "ab");
}
/**
* 朴素匹配
* @param main
* @param sub
*/
public static void math(String mainStr, String subStr) {
if (StringUtils.isBlank(mainStr) || StringUtils.isBlank(subStr)) {
throw new RuntimeException("参数错误");
}
if (mainStr.length() < subStr.length()) {
throw new RuntimeException("字串长度过长");
}
int successCount = 0;
int failCount = 0;
System.out.println("主字符串:" + mainStr);
char[] mains = mainStr.toCharArray();
char[] subs = subStr.toCharArray();
end:
for (int i = 0; i < mains.length; i++) {
if (subs[0] == mains[i]) {
int count = 0;
for (int j = 0; j < subs.length; j++) {
if (i + j >= mains.length) {
break end;
}
char main = mains[i + j];
char sub = subs[j];
if (main == sub) {
count++;
}
if (count == subs.length) {
successCount++;
System.out.println("SUCCESS:" + subStr);
}
if (j == subs.length - 1 && count != subs.length) {
failCount++;
System.out.println("FAIL:" + subStr);
}
}
} else {
failCount++;
System.out.println("FAIL:" + subStr);
}
}
System.out.println("成功次数:" + successCount);
System.out.println("失败次数:" + failCount);
System.out.println("总匹配次数:" + (failCount + successCount));
}
}