下面isEmptyString函数正确的是?
统计了一下,公司java面试题里错误率在70%以上的一道题。初级java真难招啊...
下面isEmptyString函数正确的是:
(A)public boolean isEmptyString(String str) {
return str == null || str.length() == 0;
}
(B)
public boolean isEmptyString(String str) {
return str.length() == 0 || str == null;
}
(C)
public boolean isEmptyString(String str) {
return str == "" || str.length() == 0;
}
(D)
public boolean isEmptyString(String str) {
return str.equals("") || str.length() == 0;
}
回答:
正确答案是 A。
A选项中,判断字符串是否为空的逻辑是首先判断字符串是否为null,其次判断字符串的长度是否为0,这是正确的方式。
B选项中,逻辑与A选项的逻辑相似,但是判断字符串长度是否为0在前,而判断字符串是否为null在后,这样有可能会引发空指针异常。
C选项中,判断字符串是否为空的逻辑是通过判断字符串是否为"",即空字符串,这在Java中是错误的,因为字符串的比较需要使用equals方法,不应使用“==”或“!=”。
D选项中,逻辑与C选项相似,在比较字符串是否为空时使用的是equals方法,而判断字符串是否为null的逻辑错误地放在了判断字符串是否为空字符串之前。
回答:
不应该这么写吗
public boolean isEmptyString(String str) { return StringUtils.isEmpty(str);
}
回答:
A
BD原因一样, str有可能为null
C是因为Sting是引用类型, 不能用==判断是否相同
回答:
按照我的理解是,所有答案都是错误的,又没有说允许为 NULL, NULL 和 empty string 还是有区别的吧,正解应该是 str != null && str.length() == 0
以上是 下面isEmptyString函数正确的是? 的全部内容, 来源链接: utcz.com/p/945122.html