下面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

回到顶部