StringUtils类中isEmpty与isBlank的区别

本文转载自:https://www.cnblogs.com/dennisit/p/3705374.html

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获取到的参数,需要经过判空处理,转型然后得到我们想要的值,这里可以进行这些操作的简单封装.如下

  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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值