StringUtils里的isEmpty方法和isBlank方法的区别详解
前言
我们常说的字符串为空,其实就是一个没有字符的空数组。比如:
Stringa="";
a就可以称为是一个空字符串。由于String在Java中底层是通过char数组去存储字符串的,所以空字符串对应的char数组表现形式为
privatefinalcharvalue[]=newchar[0];
但实际工作中,我们需要对字符串进行一些校验,比如:是否为null,是否为空,是否去掉空格、换行符、制表符等也不为空。我们一般都是通过一些框架的工具类去做这些判断,比如:apache的commonsjar包。下面就讲述一下常见的两个字符串校验方法以及它们的区别。
isEmpty()
publicstaticbooleanisEmpty(Stringstr){
returnstr==null||str.length()==0;
}
isBlank()
publicstaticbooleanisBlank(Stringstr){
intstrLen;
if(str!=null&&(strLen=str.length())!=0){
for(inti=0;i
结论
通过以上代码对比我们可以看出:
1.isEmpty没有忽略空格参数,是以是否为空和是否存在为判断依据。
2.isBlank是在 isEmpty的基础上进行了为空(字符串都为空格、制表符、tab的情况)的判断。(一般更为常用)
大家可以看下面的例子去体会一下。
StringUtils.isEmpty("yyy")=false
StringUtils.isEmpty("")=true
StringUtils.isEmpty("")=false
StringUtils.isBlank("yyy")=false
StringUtils.isBlank("")=true
实例展示
自定义判断方法,实现同样的判断逻辑
/**
*判断对象是否为null,不允许空白串
*
*@paramobject目标对象类型
*@return
*/
publicstaticbooleanisNull(Objectobject){
if(null==object){
returntrue;
}
if((objectinstanceofString)){
return"".equals(((String)object).trim());
}
returnfalse;
}
/**
*判断对象是否不为null
*
*@paramobject
*@return
*/
publicstaticbooleanisNotNull(Objectobject){
return!isNull(object);
}
System.out.println(StringHandler.isNull(null));//true
System.out.println(StringHandler.isNull(""));//true
System.out.println(StringHandler.isNull(""));//true
System.out.println(StringHandler.isNull("dd"));//false
通常我们通过HttpServletRequest获取到的参数,需要经过判空处理,转型然后得到我们想要的值,这里可以进行这些操作的简单封装.如下
/**
*从HttpServletRequest中获取String类型的值,不允许传递空串
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalStringgetString(HttpServletRequestrequest,StringparamName){
returngetString(request,paramName,false);
}
/**
*从HttpServletRequest中获取String类型的值
*
*如果传递过来的参数为包含空白字符串的字符,认为为有效值,否则返回null
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalStringgetString(HttpServletRequestrequest,StringparamName,booleanisWithSpace){
Stringtmp=request.getParameter(paramName);
if(isWithSpace){
//如果允许包含空格,则使用isEmpty判空
if(!StringUtils.isEmpty(tmp)){
returntmp;
}
}else{
if(!StringUtils.isBlank(tmp)){
returntmp;
}
}
returnnull;
}
/**
*从HttpServletRequest中获取Long类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalLonggetLong(HttpServletRequestrequest,StringparamName){
returngetLong(request,paramName,-1L);
}
/**
*从HttpServletRequest中获取Long类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalLonggetLong(HttpServletRequestrequest,StringparamName,LongdefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Longvalue=Long.parseLong(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return-1L;
}
}
returndefaultValue;
}
/**
*从HttpServletRequest中获取Integer类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalIntegergetInt(HttpServletRequestrequest,StringparamName){
returngetInt(request,paramName,-1);
}
/**
*从HttpServletRequest中获取Integer类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalIntegergetInt(HttpServletRequestrequest,StringparamName,intdefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Integervalue=Integer.parseInt(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return-1;
}
}
returndefaultValue;
}
/**
*从HttpServletRequest中获取Short类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalShortgetShort(HttpServletRequestrequest,StringparamName){
returngetShort(request,paramName,(short)-1);
}
/**
*从HttpServletRequest中获取Short类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalShortgetShort(HttpServletRequestrequest,StringparamName,shortdefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Shortvalue=Short.parseShort(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return(short)-1;
}
}
returndefaultValue;
}
/**
*从HttpServletRequest中获取Byte类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalBytegetByte(HttpServletRequestrequest,StringparamName){
returngetByte(request,paramName,(byte)-1);
}
/**
*从HttpServletRequest中获取Byte类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalBytegetByte(HttpServletRequestrequest,StringparamName,BytedefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Bytevalue=Byte.parseByte(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return(byte)-1;
}
}
returndefaultValue;
}
/**
*从HttpServletRequest中获取Double类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalDoublegetDouble(HttpServletRequestrequest,StringparamName){
returngetDouble(request,paramName,-1D);
}
/**
*从HttpServletRequest中获取Double类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalDoublegetDouble(HttpServletRequestrequest,StringparamName,DoubledefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Doublevalue=Double.parseDouble(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return-1D;
}
}
returndefaultValue;
}
/**
*从HttpServletRequest中获取Float类型的值
*
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@return
*返回需要的值
*/
publicstaticfinalFloatgetFloat(HttpServletRequestrequest,StringparamName){
returngetFloat(request,paramName,-1F);
}
/**
*从HttpServletRequest中获取Float类型的值
*
*@paramrequest
*@seeHttpServletRequest
*@paramparamName
*参数名称
*@paramdefaultValue
*默认值
*@return
*返回需要的值
*/
publicstaticfinalFloatgetFloat(HttpServletRequestrequest,StringparamName,FloatdefaultValue){
Stringtmp=request.getParameter(paramName);
if(!StringUtils.isBlank(tmp)){
try{
Floatvalue=Float.parseFloat(tmp);
returnvalue;
}catch(NumberFormatExceptione){
return-1F;
}
}
returndefaultValue;
}
到此这篇关于StringUtils里的isEmpty方法和isBlank方法的区别详解的文章就介绍到这了,更多相关StringUtilsisEmptyisBlank内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!