一尘不染

Java检查字符串是否不为空且不为空

java

如何检查字符串是否不为null也不为空?

public void doStuff(String str)
{
    if (str != null && str != "**here I want to check the 'str' is empty or not**")
    {
        /* handle empty string */
    }
    /* ... */
}

阅读 423

收藏
2020-02-27

共1个答案

一尘不染

isEmpty()呢?

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

确保&&按此顺序使用的部分,因为如果的第一部分&&失败,java将不会继续评估第二部分,因此确保你不会从str.isEmpty()if str为null的情况下得到null指针异常。

请注意,仅从Java SE 1.6起可用。你必须检查str.length() == 0以前的版本。

也要忽略空格:

if(str != null && !str.trim().isEmpty())

(由于Java 11 str.trim().isEmpty()可以简化为str.isBlank()也可以测试其他Unicode空白)

包裹在一个方便的功能中:

public static boolean empty( final String s ) {
  // Null-safe, short-circuit evaluation.
  return s == null || s.trim().isEmpty();
}

成为:

if( !empty( str ) )
2020-02-27