直接贴出代码,源码中用了两层for循环,与第二层平行的还有一层while循环,下面的算法只循环了一次就可以得出结果,测试可以通过,但是不知道该算法的有点与缺点,希望高手能够点评,非常诚意的询问意见,谢谢
/**
* @param originalContent 原始字符串
* @param searchContent 要搜索的子串
* @return 包含子串返回true 否则返回false
*/
private boolean search(@NonNull String originalContent, @NonNull String searchContent) {
if (originalContent.length() == 0 && searchContent.length() == 0) {
return true;
}
char[] originalChar = originalContent.toCharArray();
char[] searchChar = searchContent.toCharArray();
boolean isContain = false;
int index = 0;
for (int i = 0; i < originalChar.length; i++) {
if (originalChar[i] == searchChar[index]) {
if (index == searchChar.length - 1) {
isContain = true;
break;
}
index++;
} else {
if (originalChar.length - i < searchChar.length) {
break;
}
index = 0;
}
}
return isContain;
}