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内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!