public void doStuff(String str)
{
if (str != null && str != "**here I want to check the 'str' is empty or not**")
{
/* handle empty string */
}
/* ... */
}
import com.google.common.base.Strings;
import org.apache.commons.lang.StringUtils;
/**
* Created by hu0983 on 2016.01.13..
*/
public class StringNotEmptyTesting {
public static void main(String[] args){
String a = " ";
String b = "";
String c=null;
System.out.println("Apache:");
if(!StringUtils.isNotBlank(a)){
System.out.println(" a is blank");
}
if(!StringUtils.isNotBlank(b)){
System.out.println(" b is blank");
}
if(!StringUtils.isNotBlank(c)){
System.out.println(" c is blank");
}
System.out.println("Google:");
if(Strings.isNullOrEmpty(Strings.emptyToNull(a))){
System.out.println(" a is NullOrEmpty");
}
if(Strings.isNullOrEmpty(b)){
System.out.println(" b is NullOrEmpty");
}
if(Strings.isNullOrEmpty(c)){
System.out.println(" c is NullOrEmpty");
}
}
}
public List<Employee> findEmployees(String str, int dep) {
Preconditions.checkState(StringUtils.isNotBlank(str), "Invalid input, input is blank or null");
/**code here**/
}
30条答案
按热度按时间xxb16uws16#
我会根据您的实际需要建议guava或apache commons。检查我的示例代码中的不同行为:
结果:
Apache:
a为空
b为空
c为空
谷歌:
b是空的
c是空的
g0czyy6m17#
检查对象中的所有字符串属性是否为空(而不是使用=遵循java反射api方法的所有字段名都为null
如果所有字符串字段值都为空,则此方法将返回true;如果字符串属性中存在任何一个值,则此方法将返回false
trnvg8h318#
使用apache stringutils的isnotblank方法
只有str不为null且不为空时,它才会返回true。
pexxcrt219#
正如seanizer在上面所说的,ApacheStringutils非常适合这个应用,如果您要包括Guava,那么您应该执行以下操作:;
我还建议您按名称而不是索引引用结果集中的列,这将使代码更易于维护。
bxjv4tth20#
如果使用spring框架,则可以使用以下方法:
此方法接受任何对象作为参数,将其与null和空字符串进行比较。因此,对于非null非字符串对象,此方法永远不会返回true。
ojsjcaue21#
怎么样:
slmsl1lt22#
你应该使用
org.apache.commons.lang3.StringUtils.isNotBlank()
或者org.apache.commons.lang3.StringUtils.isNotEmpty
. 这两者之间的决定是基于您实际想要检查的内容。isnotblank()检查输入参数是否为:
不为空,
不是空字符串(“”)
不是空格字符序列(“”)
isnotempty()只检查输入参数是否正确
非空
不是空字符串(“”)
kzmpq1sx23#
在这里添加android:
wr98u20j24#
在同一条件中使用空字符串和null测试equals:
不抛出
NullPointerException
如果str为空,因为Object.equals()
如果arg为null
.另一个构造
str.equals("")
会把可怕的NullPointerException
. 有些人可能会认为使用字符串文字作为wich上的对象形式不好equals()
被称为,但它做的工作。同时检查以下答案:https://stackoverflow.com/a/531825/1532705
kzipqqlq25#
几乎我所知道的每个库都定义了一个名为
StringUtils
,StringUtil
或者StringHelper
,它们通常包括您要查找的方法。我个人最喜欢的是apachecommons/lang,在stringutils类中,您可以同时获得
isempty(字符串)和
isblank(string)方法
(第一个检查字符串是null还是空的,第二个检查字符串是null、空还是只包含空格)
spring、wicket和许多其他lib中都有类似的实用程序类。如果不使用外部库,可能需要在自己的项目中引入stringutils类。
更新:很多年过去了,现在我推荐用Guava
Strings.isNullOrEmpty(string)
方法。wnavrhmk26#
isempty()呢?
一定要使用
&&
按照这个顺序,因为如果&&
失败,从而确保不会从str.isEmpty()
如果str
为空。注意,它只在JavaSE1.6之后才可用。你得检查一下
str.length() == 0
在以前的版本上。也要忽略空白:
(自java 11以来)
str.trim().isEmpty()
可以简化为str.isBlank()
它还将测试其他unicode空格)Package 在一个方便的函数中:
变成:
wf82jlnq27#
我已经创建了自己的实用函数来同时检查几个字符串,而不是让if语句充满
if(str != null && !str.isEmpty && str2 != null && !str2.isEmpty)
. 这是函数:所以我可以简单地写:
jtw3ybtb28#
我遇到了一种情况,我必须检查“null”(作为字符串)必须被视为空。另外,空格和实际null必须返回true。我终于确定了以下函数。。。
rqcrx0a629#
如果您使用的是springboot,那么下面的代码将完成这项工作
bejyjqdl30#
在@bjorn和@seanpatrickfloyd中添加Guava的方法是:
CommonsLang有时更具可读性,但我一直在慢慢地更多地依赖GuavaPlus,有时CommonsLang会让人困惑
isBlank()
(比如什么是空白或不是空白)。Guava版本的commons lang
isBlank
可能是:我会说代码不允许
""
(空)和null
是可疑的和潜在的缺陷,因为它可能不会处理所有不允许的情况null
有道理(尽管对于sql,我可以理解为sql/hql很奇怪)''
).