当前位置: 首页 > 知识库问答 >
问题:

java - 下面isEmptyString函数正确的是?

叶元凯
2023-04-22

统计了一下,公司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;
}

共有4个答案

乐正烨熠
2023-04-22

按照我的理解是,所有答案都是错误的,又没有说允许为 NULL, NULL 和 empty string 还是有区别的吧,正解应该是 str != null && str.length() == 0

洪德寿
2023-04-22

A
BD原因一样, str有可能为null
C是因为Sting是引用类型, 不能用==判断是否相同

谭健柏
2023-04-22

不应该这么写吗

public boolean isEmptyString(String str) {
    return StringUtils.isEmpty(str);
}
子车安和
2023-04-22

正确答案是 A。

A选项中,判断字符串是否为空的逻辑是首先判断字符串是否为null,其次判断字符串的长度是否为0,这是正确的方式。

B选项中,逻辑与A选项的逻辑相似,但是判断字符串长度是否为0在前,而判断字符串是否为null在后,这样有可能会引发空指针异常。

C选项中,判断字符串是否为空的逻辑是通过判断字符串是否为"",即空字符串,这在Java中是错误的,因为字符串的比较需要使用equals方法,不应使用“==”或“!=”。

D选项中,逻辑与C选项相似,在比较字符串是否为空时使用的是equals方法,而判断字符串是否为null的逻辑错误地放在了判断字符串是否为空字符串之前。

 类似资料:
  • 我们有一个关于MySQL中返回错误整数值的函数的问题。我们已经检查了“booked_passeters”是否包含正确的值0,并且当移除该变量时,它可以正常工作,也就是说只返回整数40。但是,当我们试图从它中减去“booked_passeters”(最终仍应返回40)时,它就不起作用了。 包括下面的代码。 提前道谢!:-)

  • 我似乎不能运行我的java程序,因为它认为我的MO. class文件在我的gson库的类路径中。我做错了什么? $ls gson MO.java $javac-cp.:gson/gson/target/gson-2.7.1-快照。JARMO.java $java-cp.:gson/gson/target/gson-2.7.1-快照。jar MO 线程“main”java中出现异常。java上的la

  • 问题内容: 我想编写一个Python函数,该函数可以改变其中一个参数(它是一个列表,即可变的)。像这样: 与Python的设置(无论您决定调用它)相比,我对按值传递更为熟悉。所以我通常会这样写一个函数: 这是我的困惑。由于我只能更改参数,因此第二种方法似乎是多余的。但是第一个 感觉不对。 另外,我的特定函数将具有多个参数,只有其中一个会更改。第二种方法可以清楚地知道正在更改的参数(因为已将其分配给

  • 我对编码很陌生。尝试用Java编写一个evaluatePostfix函数。我不断得到一个错误: 不兼容的类型:int不能转换为字符堆栈。push(eval(token,a,b)); 下面是我的代码块: 函数接受后缀表达式并计算结果。 这是我的eval函数:

  • 在我的android应用程序中,我正在努力获取提供日期的周数。但是它没有给我正确的周数,我正在使用下面的代码来获取周数。 从上述日历中可以看出,截至2016年1月,属于第1周的天数只有第1、第2和第3天。第二周的相关天数为第四、第五、第六、第七、第八、第九和第十天。第三周的相关天数为11、12、13、14、15、16和17日,依此类推。但对于2016年1月12日,上述代码给出了第2周,而不是第3周