字符串在Java中是否为空?
这肯定是以前问过的,但是。在任何标准java库(包括apache/google/…)中,是否存在一个用于字符串在Java中是否为空?,java,string,Java,String,这肯定是以前问过的,但是。在任何标准java库(包括apache/google/…)中,是否存在一个用于字符串的静态isNullOrEmpty()方法?否,这就是为什么许多其他库都有自己的副本:) 或 或 来自Apache empty和blank之间的区别在于:仅由空格组成的字符串是blank,而不是empty 如果可能的话,我通常更喜欢使用apache commons,而不是编写我自己的实用程序方法,尽管这对于像这样的简单方法也是可行的。对于新项目,我已经开始让我编写的每个类都扩展相同的基类
字符串的静态isNullOrEmpty()
方法?否,这就是为什么许多其他库都有自己的副本:)
- 或
- 或
来自Apache
empty
和blank
之间的区别在于:仅由空格组成的字符串是blank
,而不是empty
如果可能的话,我通常更喜欢使用apache commons,而不是编写我自己的实用程序方法,尽管这对于像这样的简单方法也是可行的。对于新项目,我已经开始让我编写的每个类都扩展相同的基类,这样我就可以将Java中令人烦恼的缺失的所有实用程序方法放在这里了,集合的等价物(厌倦了编写list!=null&&!list.isEmpty())、null-safe-equals等。我仍然使用Apache Commons进行实现,但这节省了少量键入,而且我没有看到任何负面影响 我在参与过的项目中多次看到过这种方法,但我不得不说,我自己从来没有写过,也没有称之为。。。通常我发现null和empty是完全不同的条件,我没有理由将它们混为一谈。您可以添加一个
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;
}
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)
from除了其他答案之外,我还遇到了这个问题,因为我主要是一名C#程序员,但试图在Java中保持新鲜感。我注意到,当我尝试使用StringUtils
时,我的IDE(Eclipse)从com.mysql.jdbc.StringUtils
中导入了它,它实际上有一个isNullOrEmpty(myStringObject)
方法
前
import com.mysql.jdbc.StringUtils代码>
StringUtils.isNullOrEmpty(主机)
对于那些已经在您的项目中引用了MySQL连接器,但没有其他StringUtils
库的人来说,这只是另一种选择。如果您正在进行android开发,您可以使用:
TextUtils.isEmpty (CharSequence str)
在API级别1中添加
如果字符串为null或长度为0,则返回true。要检查字符串是否包含任何字符,即非null或空格,请检查StringUtils.hasText
-方法(当然,如果您使用的是Spring)
例如:
StringUtils.hasText(null) == false
StringUtils.hasText("") == false
StringUtils.hasText(" ") == false
StringUtils.hasText("12345") == true
StringUtils.hasText(" 12345 ") == true
Yashwant,您不需要返回true和false行:return str==null | | str.trim().length()=0<代码>返回str==null?真:假
-经典的no-no。为什么不返回str==null
?为什么在可以编写if(str==null)的情况下还要实现第一个方法?请注意第二个方法,这不是雅加达公用程序中的实现方式,主要是因为当您执行“trim”方法时,您正在创建一个新对象,在它们的实现中,它们实际上从一开始就遍历字符串,如果它们找到的不是空格,它们将停止该方法并返回true。它可能更快,而且内存可能更好。这是一件很小的事情,但出于这些原因,最好使用外部库;空白表示“”、null和任意数量的空白;空的只是“”和null。在这种情况下,google方法似乎很清楚New link do Guava doc:创建自己的“通用基类”在很多方面都是有问题的,而且在一种没有多重继承的语言中,这是一种非常有限的设计策略。Java已经有了一个名为Object的通用基类。我可以像那个一样轻松地扩展我的基类。正如我所说,我还没有看到任何问题,但我很想听听潜在的陷阱-也许我会提交一个S/O问题来询问。我在这里没有立场,但我认为限制(“分解”)是如果您的一个类需要从某个库类继承,例如GUI控件等。您的这些类将无法直接继承和使用您的实用程序方法(与Object不同,您的MyObject不是其他所有类的超类)@唐罗比,这就是你的意思吗?只要一个人不依赖于,比如说,MyObject重写Object定义的标准方法,这里有什么特别的危险吗?@JCoombs,是的,这正是我的意思。请看这里的讨论:哥们,这太棒了!这正是我想要避免使用try-catch子句的原因,非常感谢!太爱你了,谢谢你!要添加,isNullOrEmpty
如果给定字符串只有空格,则返回true。“空”在现实世界中意味着什么?听起来很有趣!实际上它返回false。。。公共静态布尔值isNullOrEmpty(@Nullable String String){return String==null | | | String.length()==0;//String.isEmpty()在Java 6}中是哪个StringUtils?请指定完整的包名。不幸的是,编辑为什么不应该这样做并不是一个答案。