在校验一个String类型的变量是否为空时,通常存在3中情况:
- 是否为 null
- 是否为 ""
- 是否为空字符串(引号中间有空格) 如: " "。
trim() 方法会从一个字符串的两端删除空白字符
常用非空判断方法
String为空的三种状态:null, ""和new String(),
判断某字符串为空的标准是 str==null 或 str.length()==0,
非空判断一
if(str!=null&&str.length()>0) { 执行代码 }
非空判断二
if(null != str && !"".equals(str)) { 执行代码 }
非空判断三
导包:import org.apache.commons.lang3.StringUtils;
或:import org.springframework.util.StringUtils;
If(!StringUtils.isEmpty(c)){ 执行代码 }
If(StringUtils.isNotEmpty(c)){ 执行代码 }
String.isEmpty() 方法使用的坑点
String对象中有一个isEmpty的方法判断是否为空,其实isEmpty完全等同于string.length()==0,注意如果String本身是null,那么使用string.isEmpty()会报空指针异常(NullPointerException)判断一个String为空的最安全的方法,还是string ==null || string.isEmpty()
因为,"" 和 new String(),会有占位符,也就是创建了对象,而null的时候,String 不会创建占位符。
更通俗的说就是:”” 和new String() 的时候,String是有长度的,只是长度为0,而null没有长度。
非空判断四
if(string!=null && !string.isEmpty() ) { 执行代码 }
非空判断五(最全面,安全的方法)
if(
string!=null && !string.isBlank()
) { 执行代码 }
或者用方法三:
StringUtils.isEmpty()
StringUtils的 isEmpty(String str) 和isBlank(String str)
- isEmpty(str)仅仅是判断空和长度为0字符串
- isBlank(str)判断的是空,长度为0,空白字符(包括空格,制表符\t,换行符\n,换页符\f,回车\r)组成的字符串。
String的 isEmpty() 和isBlank()
- isEmpty仅仅是判断长度为0字符串
- isBlank判断的是长度为0,空白字符(包括空格,制表符\t,换行符\n,换页符\f,回车\r)组成的字符串。