【发布时间】:2020-11-29 10:02:19
【问题描述】:
这是我的代码,我不知道为什么“一个 == null”和“两个 == null”总是 False,我不能向我的方法发送任何 Null 参数! 请帮帮我
public class RepeatInString {
public int StringInString(String one, String two) {
if (one.equals("") || two.equals("") || one == null || two == null){
return 0;
}
else{
char[] oneChar = one.toCharArray();
char[] twoChar = two.toCharArray();
int repeatCounter = 0;
int matchChars = 0;
for (int i=0 ; i < (one.length()-two.length()+1) ;i++ ){
matchChars = 0;
for (int j=0; j<two.length() ;j++) {
if (oneChar[i + j] == twoChar[j])
matchChars += 1;
else
break;
}
if (matchChars == two.length())
repeatCounter += 1;
}
return repeatCounter;
}
}
【问题讨论】:
-
字符串有
isEmpty()顺便说一句 -
在您已经调用
one.equals("")之后检查one==null是没有意义的,因为尝试的方法调用会引发异常。如果您要检查事物是否为空,请先检查。 -
@frozen 我自己总是忘记那个!
-
@khelwood 零长度和null一样吗?
-
能否请您包含调用您的方法的代码?
标签: java arguments null-pointer