String的 null、isEmpty()和”“都有空的含义,但是意义不相同
public static void main(String[] args) {
String a = "";
String b = null;
String c= new String();
testString(a);
testString(b);
testString(c);
String d =c;
testString(d.substring(0,0));
System.out.println(null+"abcd");
System.out.println(c);
}
private static void testString (String testString){
if(testString == null){
System.out.println("String 状态为 :null");
}
if(testString !=null && testString.isEmpty()){
System.out.println("String 状态为 :isEmpty");
}
if(testString !=null && testString.equals("")){
System.out.println("String 状态为 :\"\"");
}
System.out.println("***********************");
}

String 的isEmpty()方法,在String为null时,会出现空指针错误,isEmpty()方法底层是判断长度
因为"" 和 new String() 会有占位符,也是创建了对象,而null的时候,String不会创建占位符
换句话说:"" 和 new String() ,String是有长度,都是0 ,而为null时,长度是没有的
判断String时,推荐用lang3下的StringUtiles工具类中
StringUtils.isNotBlank();
StringUtils.isNotEmpty()
博客介绍了Java中String的null、isEmpty()和\\的区别。isEmpty()在String为null时会有空指针错误,底层是判断长度;\\和new String()有占位符、有长度且为0,null时无占位符、无长度。还推荐用lang3下StringUtiles工具类的相关方法判断。

1075

被折叠的 条评论
为什么被折叠?



