我们可以依靠 String.isEmpty 来检查 Java 中字符串的空条件吗?

2022-08-31 15:30:43

我正在从XML文件传递一个帐户作为输入,如下所示,稍后将解析并将在我们的代码中使用:

<accountid>123456</accountid>
<user>pavan</user>

问题是,如果没有传递任何内容(accoutnid中的空值)作为 accountid 传递,则我无法在 Java 代码中处理这种情况。我试过这个,但我不成功:

if (acct != null||acct==""||acct.equals("")) 
{
    // the above is not working 
}

我能够使用以下方法成功处理此问题:

if(!acct.isEmpty())
{
   // thisis working 
}

我们可以依靠 String.isEmpty() 方法来检查 String 的 null 条件吗?这有效吗?


答案 1

不,绝对不是 - 因为如果为空,它甚至不会到达...它会立即抛出一个.acctisEmptyNullPointerException

您的测试应该是:

if (acct != null && !acct.isEmpty())

注意这里使用,而不是你在前面的代码;还要注意,在你之前的代码中,你的条件无论如何都是错误的 - 即使你只有空字符串才能输入正文。&&||&&ifacct

或者,使用番石榴

if (!Strings.isNullOrEmpty(acct))

答案 2

相反,使用时,它还会检查空值。StringUtils.isEmpty

例如:

 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true
 StringUtils.isEmpty(" ")       = false
 StringUtils.isEmpty("bob")     = false
 StringUtils.isEmpty("  bob  ") = false

有关字符串 Utils 的官方文档的更多信息