我写了这段代码,但我不知道为什么不工作。
static boolean findeText(String text1, String text2) {
char c1[] = text1.toCharArray();
char c2[] = text2.toCharArray();
boolean b = false;
for (int i = 0; i <= c1.length - c2.length; i++) {
for (int j = 0, h = i; j <= c2.length; j++, h++) {
if (i == c2.length) {
return true;
}
if (c1[h] != c2[j]) {
b = false;
break;
}
}
}
return b;
}
我想在文本1中找到文本2,然后返回true或false。
3条答案
按热度按时间a11xaf1n1#
如果你想检查某个字符串是否包含其他字符串,只需使用
contains()
方法。对你来说
另外,你应该始终以防御的方式编写代码。这意味着你应该始终确保不会有
NullPointerException
等。因此,在您的特定情况下,如果有人传递null text1或null text2,您的程序将崩溃。6jygbczu2#
上面你有NPE在排队
if(c1[h]!= c2[j])
我已经稍微修改了你的代码,以获得输出的要求.
fwzugrvs3#
所提供的代码有一些缺陷,使其无法在第一个文本中正确定位第二个文本。以下是一些改进建议: