zoukankan      html  css  js  c++  java
  • StringUtils类中isEmpty与isBlank的区别

    org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String str)。

    StringUtils.isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

    System.out.println(StringUtils.isEmpty(null));        //true
    System.out.println(StringUtils.isEmpty(""));          //true
    System.out.println(StringUtils.isEmpty("   "));       //false
    System.out.println(StringUtils.isEmpty("dd"));        //false

    StringUtils.isNotEmpty(String str) 等价于 !isEmpty(String str)

    StringUtils.isBlank(String str) 判断某字符串是否为空或长度为0或由空白符(whitespace) 构成

    System.out.println(StringUtils.isBlank(null));        //true
    System.out.println(StringUtils.isBlank(""));          //true
    System.out.println(StringUtils.isBlank("   "));       //true
    System.out.println(StringUtils.isBlank("dd"));        //false    

    StringUtils.isBlank(String str) 等价于 !isBlank(String str)

    实例展示

    自定义判断方法,实现同样的判断逻辑

        /**
         * 判断对象是否为null,不允许空白串
         *
         * @param object    目标对象类型
         * @return
         */
        public static boolean isNull(Object object){
            if (null == object) {
                return true;
            }
            if ((object instanceof String)){
                return "".equals(((String)object).trim());
            }
            return false;
        }
    
        /**
         * 判断对象是否不为null
         *
         * @param object
         * @return
         */
        public static boolean isNotNull(Object object){
            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获取到的参数,需要经过判空处理,转型然后得到我们想要的值,这里可以进行这些操作的简单封装.如下

        
        /**
         * 从<code>HttpServletRequest</code>中获取<code>String</code>类型的值, 不允许传递空串
         * 
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        public static final String getString(HttpServletRequest request,String paramName){
            return getString(request, paramName, false);
        }
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>String</code>类型的值
         * 
         * 如果传递过来的参数为包含空白字符串的字符,认为为有效值, 否则返回null
         * 
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        public static final String getString(HttpServletRequest request,String paramName,boolean isWithSpace) {
            String tmp = request.getParameter(paramName);
            if(isWithSpace){
                //如果允许包含空格,则使用isEmpty判空
                if (!StringUtils.isEmpty(tmp)){
                    return tmp;
                }
            }else{
                if(!StringUtils.isBlank(tmp)){
                    return tmp;
                }
            }
            return null;
        }
        
        
        
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Long</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        public static final Long getLong(HttpServletRequest request,String paramName) {
            return getLong(request, paramName, -1L);
        }
    
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Long</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Long getLong(HttpServletRequest request,String paramName,Long defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Long value = Long.parseLong(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return -1L;
                }
            }
            return defaultValue;
        }
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Integer</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        
        public static final Integer getInt(HttpServletRequest request,String paramName) {
            return getInt(request,paramName, -1);
        }
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Integer</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Integer getInt(HttpServletRequest request,String paramName, int defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Integer value = Integer.parseInt(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return -1;
                }
            }
            return defaultValue;
        }
        
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Short</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        
        public static final Short getShort(HttpServletRequest request,String paramName) {
            return getShort(request,paramName, (short)-1);
        }
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Short</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Short getShort(HttpServletRequest request,String paramName, short defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Short value = Short.parseShort(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return (short)-1;
                }
            }
            return defaultValue;
        }
        
        
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Byte</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        
        public static final Byte getByte(HttpServletRequest request,String paramName) {
            return getByte(request,paramName, (byte)-1);
        }
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Byte</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Byte getByte(HttpServletRequest request,String paramName, Byte defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Byte value = Byte.parseByte(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return (byte)-1;
                }
            }
            return defaultValue;
        }
        
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Double</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        public static final Double getDouble(HttpServletRequest request,String paramName) {
            return getDouble(request, paramName,-1D);
        }
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Double</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Double getDouble(HttpServletRequest request,String paramName, Double defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Double value = Double.parseDouble(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return -1D;
                }
            }
            return defaultValue;
        }
        
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Float</code>类型的值
         *
         *                
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @return
         *                             返回需要的值
         */
        public static final Float getFloat(HttpServletRequest request,String paramName) {
            return getFloat(request, paramName,-1F);
        }
        
    
        /**
         * 从<code>HttpServletRequest</code>中获取<code>Float</code>类型的值
         *
         * @param request
         *                             @see HttpServletRequest
         * @param paramName
         *                             参数名称
         * @param defaultValue
         *                             默认值
         * @return
         *                             返回需要的值
         */
        public static final Float getFloat(HttpServletRequest request,String paramName, Float defaultValue) {
            String tmp = request.getParameter(paramName);
            if (!StringUtils.isBlank(tmp)){
                try {
                    Float value = Float.parseFloat(tmp);
                    return value;
                } catch (NumberFormatException e) {
                    return -1F;
                }
            }
            return defaultValue;
        }
        
    View Code

    再附加个人经常用的几个String的操作
    1.字符串编码转换

        /**
         * change UTF8 To GB2312
         * @param target
         * @return
         */
        public static final String UTF82GB2312(String target) {
            try {
                return new String(target.getBytes("UTF-8"), "gb2312");
            } catch (Exception localException) {
                System.err.println("UTF8 TO GB2312 change error!");
            }
            return null;
        }
    
        /**
         * change UTF8 To GBK
         * @param target
         * @return
         */
        public static final String UTF82GBK(String target) {
            try {
                return new String(target.getBytes("UTF-8"), "GBK");
            } catch (Exception localException) {
                System.err.println("UTF8 TO GBK change error!");
            }
            return null;
        }
    
        /**
         * change UTF8 To ISO8859-1
         * @param target
         * @return
         */
        public static final String UTF82ISO(String target) {
            try {
                return new String(target.getBytes("UTF-8"), "ISO8859-1");
            } catch (Exception localException) {
                System.err.println("UTF8 TO ISO8859-1 change error!");
            }
            return null;
        }
    
        /**
         * change Windows-1252 To UTF-8
         * @param target
         * @return
         */
        public static final String Windows1252UTF8(String target) {
            try {
                return new String(target.getBytes("Windows-1252"), "UTF-8");
            } catch (Exception localException) {
                System.err.println("Windows1252 To UTF8 chage error");
            }
            return null;
        }
        

    2.文本追加高亮

        /**
         * 给串增加颜色标签
         * @param color
         * @param target
         * @return
         */
        public static String withColor(String color, String target) {
            return withColor(color, target,true);
        }
        
        /**
         * 给串增加颜色标签
         * @param color
         * @param target
         * @param paramBoolean
         * @return
         */
        public static String withColor(String color, String target, boolean paramBoolean) {
            if (paramBoolean)
                return "<font color='".concat(color).concat("'>").concat(target).concat("</font>");
            return target;
        }
        
    System.out.println(StringHandler.withColor("red","文本串", true));

    运行结果

    <font color='red'>文本串</font>


    转载请注明出处:[http://www.cnblogs.com/dennisit/p/3705374.html]

  • 相关阅读:
    ios---图片缩放
    ios---清除缓存
    ReactNative---组件种类
    Linux 用户和用户组管理
    Linux 文件与目录管理
    linux文件的基本属性
    xshell 快速复制打开之前用过的ssh
    ll 和 ls -l的详解
    laravel rbac的用户 角色 权限的crud
    laravel 中的rbac自己简单的实现
  • 原文地址:https://www.cnblogs.com/dennisit/p/3705374.html
Copyright © 2011-2022 走看看