【发布时间】:2011-01-17 08:21:10
【问题描述】:
这肯定有人问过,但是Googling doesn't find it。在任何标准 Java 库(包括 apache/google/...)中,是否有用于 Strings 的静态 isNullOrEmpty() 方法?
【问题讨论】:
这肯定有人问过,但是Googling doesn't find it。在任何标准 Java 库(包括 apache/google/...)中,是否有用于 Strings 的静态 isNullOrEmpty() 方法?
【问题讨论】:
StringUtils.isEmpty(str) 或 StringUtils.isNotEmpty(str)
StringUtils.isBlank(str) 或 StringUtils.isNotBlank(str)
来自 Apache commons-lang。
empty 和 blank 的区别在于:仅由空格组成的字符串是 blank 而不是 empty。
如果可能,我通常更喜欢使用 apache-commons,而不是编写自己的实用程序方法,尽管这对于像这样的简单方法也是合理的。
【讨论】:
如果你是做android开发的,可以使用:
TextUtils.isEmpty (CharSequence str)
在 API 级别 1 中添加 如果字符串为 null 或 0 长度,则返回 true。
【讨论】:
com.google.common.base.Strings.isNullOrEmpty(String string) 来自Google Guava
【讨论】:
isNullOrEmpty 确实返回 true。 “空”在现实世界中是什么意思?对我来说听起来很有趣!
不,这就是为什么这么多其他图书馆都有自己的副本:)
【讨论】:
你可以添加一个
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;
}
【讨论】:
检查一个字符串是否有任何字符,即。不是 null 或空格,请检查 StringUtils.hasText-method(当然如果您使用的是 Spring)
例子:
StringUtils.hasText(null) == false
StringUtils.hasText("") == false
StringUtils.hasText(" ") == false
StringUtils.hasText("12345") == true
StringUtils.hasText(" 12345 ") == true
【讨论】:
除了其他答案之外,我还遇到了这个问题,因为我主要是 C# 程序员,但试图在 Java 中保持新鲜感。我注意到,当我尝试使用 StringUtils 时,我的 IDE(Eclipse)从 com.mysql.jdbc.StringUtils 导入它,它实际上有一个 isNullOrEmpty(myStringObject) 方法。
例如
import com.mysql.jdbc.StringUtils;
StringUtils.isNullOrEmpty(host)
对于那些已经在您的项目中引用 MySQL 连接器而不是其他 StringUtils 库的人来说,这只是另一种选择。
【讨论】:
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;
}
【讨论】:
return str == null ? true : false; - 经典的禁忌。为什么不return str == null?
我已经在我参与的项目中看到过这种方法写了几次,但我不得不说我自己从来没有写过它,或者也没有调用过它......通常我发现 null 和 empty 是完全不同的条件而且我没有理由将它们混为一谈。
【讨论】:
对于新项目,我已经开始让我编写的每个类都扩展同一个基类,在那里我可以放置 Java 中令人讨厌的所有实用方法,就像这个一样,相当于集合(厌倦了写列表!= null && !list.isEmpty())、null-safe equals 等。我仍然使用 Apache Commons 来实现,但这节省了少量的输入,而且我没有看到任何负面影响。
【讨论】: