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()