Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.String#isEmpty()与org.apache.commons.lang.StringUtils#isEmpty()的比较_Java_String_Apache Commons - Fatal编程技术网

java.lang.String#isEmpty()与org.apache.commons.lang.StringUtils#isEmpty()的比较

java.lang.String#isEmpty()与org.apache.commons.lang.StringUtils#isEmpty()的比较,java,string,apache-commons,Java,String,Apache Commons,oracles方法的描述称,只有当字符串的长度为0时,它才会返回true,而string utils方法的描述称,该方法还会检查字符串是否为“null”。那我应该用什么方法呢?如果字符串的长度为0(例如“”),那么它自动不是“null”,或者如果我将字符串设置为“null”,然后用oracles方法检查其空性,那么我会得到“false”,那么apaches方法的空检查不是多余的吗?或者我的想法完全错了吗?请帮我理解其中的区别 我倾向于总是使用apache版本。Oracle版本要求您具有非空字符串

oracles方法的描述称,只有当字符串的长度为0时,它才会返回true,而string utils方法的描述称,该方法还会检查字符串是否为“null”。那我应该用什么方法呢?如果字符串的长度为0(例如“”),那么它自动不是“null”,或者如果我将字符串设置为“null”,然后用oracles方法检查其空性,那么我会得到“false”,那么apaches方法的空检查不是多余的吗?或者我的想法完全错了吗?请帮我理解其中的区别

我倾向于总是使用apache版本。Oracle版本要求您具有非空字符串,因为它是一个实例方法,例如

String s = null;
s.isEmpty(); <--- throws a NullPointerException
StringUtils.isEmpty(s); <--- returns true

当您不知道是否设置了字符串时,Apache方法非常有用

if (s != null && !s.isEmpty()) {
    System.out.print(s)
}
vs


如果
myString
null
,那么
myString.isEmpty()应该如何工作?->“我将我的字符串设置为'null',然后用oracles方法检查它的空值,我会得到'false'”,不,你会得到一个
NullPointerException
。如果你用oracle的
isEmpty()
检查空字符串,你会得到一个NPEWell,它在apache版本中工作只是不知道oracles方法使用oracle的方法抛出NPEif只要检查
if(s!=null&&!s.isEmpty())
if (s != null && !s.isEmpty()) {
    System.out.print(s)
}
if (!StringUtils.isEmpty(s)) {
    System.out.print(s)
}