字符串在 Java 中为 NullOrEmpty? ?

以前肯定有人问过这个问题,但是 谷歌并没有找到它。在任何标准的 Java 库(包括 apache/google/...)中,Strings是否有一个静态的 isNullOrEmpty()方法?

195057 次浏览

不,这就是为什么许多其他图书馆都有自己的拷贝:)

  • StringUtils.isEmpty(str) 或 < a href = “ https://commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html # isNotEmpty (java.lang.String)”rel = “ noReferrer”> StringUtils.isNotEmpty(str)
  • StringUtils.isBlank(str) 或 < a href = “ https://commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html # isNotBlank (java.lang. String)”rel = “ noReferrer”> StringUtils.isNotBlank(str)

从阿帕奇 Commons-lang

emptyblank之间的区别在于: 仅由空格组成的字符串是 blank,但不是 empty

如果可能的话,我通常更喜欢使用 apache-commons,而不是编写我自己的实用程序方法,尽管对于像这样的简单方法来说,这也是合理的。

public static boolean isNull(String str) {
return str == null ? true : false;
}


public static boolean isNullOrBlank(String param) {
if (isNull(param) || param.trim().length() == 0) {
return true;
}
return false;
}

对于新的项目,我已经开始让我编写的每个类都扩展同一个基类,在这个基类中,我可以放入 Java 中缺失的所有实用程序方法,比如这个集合(厌倦了编写列表!)!= 空 & !IsEmpty () ,null-safe 等于,等等。我仍然使用 ApacheCommons 进行实现,但是这样可以节省少量的输入,而且我没有看到任何负面影响。

我曾经在一些项目中看到过这个方法,但是我不得不说我从来没有自己写过它,或者调用过它... ... 通常我发现 null 和 null 是完全不同的条件,我没有理由把它们混为一谈。

你可以加一个

public static boolean isNullOrBlank(String param) {
return param == null || param.trim().length() == 0;
}

是的

public static boolean isSet(String param) {
// doesn't ignore spaces, but does save an object creation.
return param != null && param.length() != 0;
}

谷歌番石榴呼叫 com.google.common.base.Strings.isNullOrEmpty(String string)

除了其他的答案之外,我还遇到了这个问题,因为我主要是一个 C # 程序员,但我试图在 Java 中保持新鲜感。我注意到,当我尝试使用 StringUtils时,我的 IDE (Eclipse)从 com.mysql.jdbc.StringUtils导入了它,而 com.mysql.jdbc.StringUtils实际上有一个 isNullOrEmpty(myStringObject)方法。

前男友。

import com.mysql.jdbc.StringUtils;

StringUtils.isNullOrEmpty(host)

对于那些已经在项目中引用了 MySQL 连接器,但没有引用其他 StringUtils库的用户来说,这只是另一种选择。

如果你正在做 android 开发,你可以使用:

TextUtils.isEmpty (CharSequence str)

在 API 级别1中添加 如果字符串为空或0长度,则返回 true。

检查字符串是否有字符。不使用 null 或空格,请检查 StringUtils.hasText-method (当然,如果您使用 Spring)

例如:

StringUtils.hasText(null) == false
StringUtils.hasText("") == false
StringUtils.hasText(" ") == false
StringUtils.hasText("12345") == true
StringUtils.hasText(" 12345 ") == true