关于StringUtils.isBlank()的使用及说明

目录
  • StringUtils.isBlank()的使用
  • StringUtils.isBlank和StringUtils.isEmpty的区别和使用
  • 总结

StringUtils.isBlank()的使用

在校验一个String类型的变量是否为空时,可以使用StringUtils.isBlank方法,它可以校验三种情况:是否为null、是否为""、是否为空字符串(引号中间有空格)" "、制表符、换行符、换页符和回车。

StringUtils.isBlank(str); 当str不为空时,返回值为false。

下面是该方法的源码:

public static boolean isBlank(CharSequence cs) {
        int strLen;
        if (cs != null && (strLen = cs.length()) != 0) {
            for(int i = 0; i < strLen; ++i) {
                if (!Character.isWhitespace(cs.charAt(i))) {
                    return false;
                }
            }
            return true;
        } else {
            return true;
        }
    }

在业务代码中使用第三方jar的工具类去判断空,简化开发且方便阅读,类似的还有isEmpty()方法。

public static boolean isEmpty(CharSequence cs) {
        return cs == null || cs.length() == 0;
    }

通过源码可以看出:

1.isEmpty没有忽略空格参数,是以是否为空和是否存在未判断依据。

2.isBlank进行了为空(字符串为空格、制表符、tab的情况)的判断。一般比较常用。

大家可以通过下面的例子进行体会:

StringUtils.isEmpty("yyy") = false
StringUtils.isEmpty("") = true
StringUtils.isEmpty("   ") = false
StringUtils.isBlank("yyy") = false
StringUtils.isBlank("") = true
StringUtils.isBlank("   ") = true

常用的方法,但是时间久了会记忆模糊,特作出记录,高手可以忽略。。。

StringUtils.isBlank和StringUtils.isEmpty的区别和使用

StringUtils.isBlank和StringUtils.isEmpty都是判断空的方法。

依赖:

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

isBlan()的使用

boolean b1 = StringUtils.isBlank(null);
        boolean b2 = StringUtils.isBlank("");
        boolean b3 = StringUtils.isBlank(" ");
        boolean b4 = StringUtils.isBlank("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isBlank("test");
        System.out.println("判断null = "+ b1 + '\n' + "判断\"\" = "+ b2 + '\n'
                 + "判断空格 = "+ b3 + '\n' + "判断制表符 = "+ b4 + '\n' + "判断换行符 = "+ b5
                + '\n' + "判断字符串 = "+ b6);

isEmpty()的使用

boolean b1 = StringUtils.isEmpty(null);
        boolean b2 = StringUtils.isEmpty("");
        boolean b3 = StringUtils.isEmpty(" ");
        boolean b4 = StringUtils.isEmpty("\t");
        boolean b5 = StringUtils.isBlank("\n");
        boolean b6 = StringUtils.isEmpty("test");
        System.out.println("判断null = "+ b1 + '\n' + "判断\"\" = "+ b2 + '\n'
                + "判断空格 = "+ b3 + '\n' + "判断制表符 = "+ b4 + '\n' + "判断换行符 = "+ b5
                + '\n' + "判断字符串 = "+ b6);

根据上面结果的对比,isBlank()方法和isEmpty方法的区别:

  • isBlank()判断制表符(\t)和空格时,为true;
  • isEmpty()判断制表符(\t)和空格时,为false;

两个判断null、""、以及换行符(\n或者\r)时为true。

两者的不同主要是因为:

isBlank()源码:

isBlank()判断是否为null和length()为0,还判断是否是空格、tab键、换行符。

isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符

isEmpty()源码

isEmpty()只判断是否为null和长度为0。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于StringUtils工具类的常用方法介绍(必看篇)

    前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false isNotEmpty(String str) 是否为非空,空格字符为true isBlank(String str) 是否为空,空格字符为true isNotBlank(String str) 是否为非空,空格字符为false trim(String str)去除字符串两端的控制符,空字符串.null

  • StringUtils里的isEmpty方法和isBlank方法的区别详解

    前言 我们常说的字符串为空,其实就是一个没有字符的空数组.比如: String a = ""; a 就可以称为是一个空字符串.由于 String 在 Java 中底层是通过 char 数组去存储字符串的,所以空字符串对应的 char 数组表现形式为 private final char value[] = new char[0]; 但实际工作中,我们需要对字符串进行一些校验,比如:是否为 null,是否为空,是否去掉空格.换行符.制表符等也不为空.我们一般都是通过一些框架的工具类去做这

  • Java中StringUtils工具类的一些用法实例

    StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码). 除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.x

  • Java中StringUtils工具类进行String为空的判断解析

    判断某字符串是否为空,为空的标准是str==null或str.length()==0 1.下面是StringUtils判断是否为空的示例: StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理 StringUtils.isEmpty(" ") = fals

  • StringUtils中的isEmpty、isNotEmpty、isBlank和isNotBlank的区别详解

    一.StringUtils中的isEmpty方法 1.StringUtils中的isEmpty方法中的源码如下: 注:由源码可知(判断某字符串是否为空,为空的标准是str==null或str.length()==0) 2.StringUtils中的isEmpty方法示例,如下代码 package com.rf.designPatterns.singleton; import org.apache.commons.lang.StringUtils; /** * @description: * @a

  • StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率最高

    目录 StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高 结论 isBlank与isEmpty区别 CollectionUtils封装类,判断为空的方法 StringUtils.CollectionUtils工具类的常用方法 一.CollectionUtils工具类 1.工作案例 二.StringUtils工具类 2.工作案例 StringUtils,CollectionUtils判断为空的方法和原生代码哪个效率高 之前一直疑惑,封装类的方法和直接写代码(字

  • 详谈StringUtils3之StringUtils.isEmpty()和StringUtils.isB的区别

    目录 #isEmpty系列 StringUtils.isEmpty() StringUtils.isNotEmpty() StringUtils.isAnyEmpty() StringUtils.isNoneEmpty() #isBank系列 StringUtils.isBlank() StringUtils.isNotBlank() StringUtils.isAnyBlank() StringUtils.isNoneBlank() StringUtils的其他方法 也许你两个都不知道,也许你

  • Java中StringUtils与CollectionUtils和ObjectUtil概念讲解

    目录 一.解析 概念 StringUtils概念 CollectionUtils概念 ObjectUtil概念 二.区别 三.总结 一.解析 概念 StringUtils概念 StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是

  • 详解AngularJS如何实现跨域请求

    跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpRequest:$http用于读取远程服务器的数据 $http.post(url, data, [config]).success(function(){ ... }); $http.get(url, [config]).success(function(){ ... }); $http.get(ur

  • 浅谈angular.js跨域post解决方案

    跨域,前端开发中经常遇到的问题,AngularJS实现跨域方式类似于Ajax,使用CORS机制. 下面阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpRequest:$http用于读取远程服务器的数据 $http.post(url, data, [config]).success(function(){ ... }); $http.get(url, [config]).success(function(){ ... }); $http.get(ur

  • Java Web端程序实现文件下载的方法分享

    Web文件下载有两种,一种是文件在网站目录下,在浏览器中直接输入文件路径即可下载,如http://www.xxx.com/file.zip.另外一种是文件不在网站目录下或者文件是动态生成的(导出报表或者导出excel等),这种情况需要通过response的OutputStream实现文件的下载.DownloadUtils是一个Java Web文件下载工具类,提供多种静态方法实现文件下载. package com.rhui.util; import java.io.BufferedInputStr

随机推荐

其他