zoukankan      html  css  js  c++  java
  • StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别

    1.StringUtils.isEmpty(CharSequence cs)实现源码

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

    从源码发现StringUtils.isEmpty(CharSequence cs)是判断了cs为null或cs.length()=0,但是我们要判断空白字符或者换行符等特殊的转义字符时,它的长度都是大于0的,所以用isEmpty判断是不行的

    2.StringUtils.isBlank(CharSequence cs)实现源码

    •     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;
              }
          }

      从上可以发现,StringUtils.isBlank方法中比isEmpty多判断了空白字符即方法Character.isWhitespace    空白符有:空格、tab 键 、换行符 、回车符 、换页符 f

            

    测试代码:

        public static void main(String[] args) {
            //isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab 键、换行符。
            System.out.println(Character.isWhitespace('c'));
            System.out.println(Character.isWhitespace(' '));
            System.out.println(Character.isWhitespace('
    '));
            System.out.println(Character.isWhitespace('	'));
            
            String str = "c";
            String str1 = "";
            String str2 = " ";
            String str3 = "
    ";
            String str4 = "	";
            System.out.println("is blank:" + StringUtils.isBlank(str3));
            System.out.println("is empty:" + StringUtils.isEmpty(str3));
        }
    false
    true
    true
    true
    is blank:true
    is empty:false

    3.结论

       若要过滤掉空白符用StringUtils.isBlank方法,若仅仅是判断字符是否为null或长度是否为0则用StringUtils.isEmpty

          

    
    
  • 相关阅读:
    C#实现带阴历显示的日期代码
    ASP.NET实现支付宝接口功能
    网站添加手机短信功能
    ASP.NET支付宝扫码即时到账支付开发流程(序言)
    ASP.NET支付宝扫码即时到账支付开发流程(下)
    ASP.NET支付宝扫码即时到账支付开发流程(上)
    如何把自己写的程序加入到开机启动项(Windows)
    C#操作注册表
    重温SQL——行转列,列转行
    Unity Hub破解
  • 原文地址:https://www.cnblogs.com/guanbin-529/p/11729678.html
Copyright © 2011-2022 走看看