StringUtils工具类的使用

org.apache.commons.lang3包下的StringUtils工具类的使用

前言
相信平时在写项目的时候,一定使用到StringUtils.isEmpty();StringUtils.isBlank();但是你真的了解他们吗?

也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNoneEmpty/isAnyBlank/isNoneBlank的存在。

 maven对应的包:

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


 maven坐标:https://mvnrepository.com/

一、isEmpty()系列

isEmpty():会绕过空值的判断

    @Test
    public void testStringUtils(){
        boolean empty = StringUtils.isEmpty(null);
        System.out.println(empty);//true
        boolean empty1 = StringUtils.isEmpty("");
        System.out.println(empty1);//true
        //字符串时空,但是输出的是false
        boolean empty2 = StringUtils.isEmpty(" ");
        System.out.println(empty2);//false
        boolean empty3 = StringUtils.isEmpty("HelloWorld!");
        System.out.println(empty3);//false
        boolean empty4 = StringUtils.isEmpty(" HelloWorld! ");
        System.out.println(empty4);//false
    }


 源码:

    @Deprecated
    public static boolean isEmpty(@Nullable Object str) {
        return str == null || "".equals(str);
    }


 @Deprecated注解:标记该方法过时了,在以后得版本中可能会被代替。

isNotEmpty():相当于不为空

    public static boolean isNotEmpty(final CharSequence cs) {
        return !isEmpty(cs);
    }

isAnyEmpty():只要有一个为空,就是true

    @Test
    public void testStringUtils(){
        System.out.println(StringUtils.isAnyEmpty("Hello", "World"));//false
        System.out.println(StringUtils.isAnyEmpty(null, "HelloWorld"));//true
        System.out.println(StringUtils.isAnyEmpty("", " "));//true
        System.out.println(StringUtils.isAnyEmpty(" ", " "));//false
    }


源码:

public static boolean isAnyEmpty(final CharSequence... css) {
  if (ArrayUtils.isEmpty(css)) {
    return true;
  }
  for (final CharSequence cs : css){
    if (isEmpty(cs)) {
      return true;
    }
  }
  return false;
}

isNoneEmpty():相当于!isAnyEmpty(css) , 必须所有的值都不为空才返回true

    @Test
    public void testStringUtils(){
        System.out.println(StringUtils.isNoneEmpty("Hello", "World"));//true
        System.out.println(StringUtils.isNoneEmpty(null, "HelloWorld"));//false
        System.out.println(StringUtils.isNoneEmpty("", " "));//false
        System.out.println(StringUtils.isNoneEmpty(" ", " "));//true
    }


二、isBank()系列


和isEmpty()基本一样,但是判断"   "的时候,结果不一样。

     @Test
    public void testStringUtils(){
        boolean empty2 = StringUtils.isBlank(" ");
        System.out.println(empty2);//true
    }


 三、常用的方法

equals():严格的比较两个字符串是不是相等

    @Test
    public void testStringUtils(){
        System.out.println(StringUtils.equals("HelloWorld", "HelloWorld"));//true
        System.out.println(StringUtils.equals("", "   "));//false
        System.out.println(StringUtils.equals("  HelloWorld  ", "HelloWorld"));//false
        System.out.println(StringUtils.equals("  ", "    "));//false
        System.out.println(StringUtils.equals("", ""));//true
        System.out.println(StringUtils.equals(" ", " "));//true
        System.out.println(StringUtils.equals("",null));//false
        System.out.println(StringUtils.equals("  ",null));//false
    }


四、其他的方法

 org.springframework.util中提供了StringUtils

在Spring的包spring-core-4.3.2.jar中的org.springframework.util中提供了StringUtils类,提供了字符串的处理。

  List集合转化为用符号隔开的字符串

   StringUtils.join(list, ",");

  字符串包含检查

例1: 检查字符串(参数1)是否包含字符串(参数2).
StringUtils.contains("defg", "ef"): true
StringUtils.contains("defg", "EF"): false
StringUtils.contains("defg", "fe"): false
StringUtils.contains("ef", "defg"): false
StringUtils.contains("aad", "aadd"): false
StringUtils.contains("defg", "aadd"): false

例2: 检查字符串(参数1)是否包含字符串(参数2), 忽略大小写.
StringUtils.containsIgnoreCase("defg", "EF"): true

例3: 检查字符串(参数1)中的字符是否全为字符串(参数2)中的字符的子集.
StringUtils.containsOnly("defg", "ef"): false
StringUtils.containsOnly("ef", "defg"): true
StringUtils.containsOnly("fe", "defg"): true
StringUtils.containsOnly("aad", "aadd"): true
StringUtils.containsOnly("defg", "aadd"): false

例4: 检查字符串(参数1)和字符串(参数2)中的字符是否不存在交集.
StringUtils.containsNone("defg", "ef"): false
StringUtils.containsNone("defg", "fe"): false
StringUtils.containsNone("ef", "defg"): false
StringUtils.containsNone("aad", "aadd"): false
StringUtils.containsNone("defg", "aadd"): false
StringUtils.containsNone("defg", "xvy"): true

例5: 检查字符串(参数1)和字符串(参数2)中的字符是否存在交集.
StringUtils.containsAny("defg", "ef"): true
StringUtils.containsAny("defg", "fe"): true
StringUtils.containsAny("ef", "defg"): true
StringUtils.containsAny("aad", "aadd"): true
StringUtils.containsAny("defg", "aadd"): true
StringUtils.containsAny("defg", "xvy"): false
 

字符串处理:

例1: 将字符串重复n次,将文字按某宽度居中,将字符串数组用某字符串连接.
//代码片段:
String[] header = new String[3];
header[0] = StringUtils.repeat("*", 50);
header[1] = StringUtils.center("  StringUtilsDemo  ", 50, "^O^");
header[2] = header[0];
String head = StringUtils.join(header, "\n");
System.out.println(head);
//运行结果:
**************************************************
^O^^O^^O^^O^^O^  StringUtilsDemo  ^O^^O^^O^^O^^O^^
**************************************************

例2: 缩短到某长度,用...结尾.
StringUtils.abbreviate("The quick brown fox jumps over the lazy dog.", 10): The qui...
StringUtils.abbreviate("The quick brown fox jumps over the lazy dog.", 15, 10): ... fox...


字符串索引及截取

例1: 返回两字符串不同处索引号.
StringUtils.indexOfDifference("aaabc", "aaacc"): 3

例2: 返回字符串(参数2)不同于字符串(参数1)的那部分字符串.
Str

例1: 判断是否为空(blank):
StringUtils.isBlank(null): true
StringUtils.isBlank(""): true
StringUtils.isBlank(" "): true

例2: 判断是否不为空(blank):
StringUtils.isNotBlank(null): false
StringUtils.isNotBlank(""): false
StringUtils.isNotBlank(" "): false

例3: 判断是否为空(empty):
StringUtils.isEmpty(null): true
StringUtils.isEmpty(""): true
StringUtils.isEmpty(" "): false

例4: 判断是否不为空(empty):
StringUtils.isNotEmpty(null): false
StringUtils.isNotEmpty(""): false
StringUtils.isNotEmpty(" "): true

例5: 判断是否是字母:
StringUtils.isAlpha("ab"): true
StringUtils.isAlpha("CD"): true
StringUtils.isAlpha("efGH"): true
StringUtils.isAlpha("12"): false
StringUtils.isAlpha("12ab"): false

例6: 判断是否是数字:
StringUtils.isNumeric("ab"): false
StringUtils.isNumeric("CD"): false
StringUtils.isNumeric("efGH"): false
StringUtils.isNumeric("12"): true
StringUtils.isNumeric("12ab"): false

例7: 判断是否是字母或数字:
StringUtils.isAlphanumeric("ab"): true
StringUtils.isAlphanumeric("CD"): true
StringUtils.isAlphanumeric("efGH"): true
StringUtils.isAlphanumeric("12"): true
StringUtils.isAlphanumeric("12ab"): true

字符串trim及默认处理:
例1: 去除字符串中的空白(包括全角空格、TAB).
StringUtils.deleteWhitespace("aa bb cc"): aabbcc
StringUtils.deleteWhitespace(" aa  bb    cc "): aabbcc

例2: 去除字符串头尾空白(包括全角空格、TAB).
StringUtils.trim(" abc  "): abc
StringUtils.trim(" abc"):  abc
StringUtils.trim("    abc"): abc

例3: 去除字符串头尾空白(包括TAB,但不包括全角空格), 结果为空串时返回空串.
StringUtils.trimToEmpty("   "):
StringUtils.trimToEmpty(" "):  
StringUtils.trimToEmpty("    "):

例4: 去除字符串头尾空白(包括TAB,但不包括全角空格), 结果为空串时返回null.
StringUtils.trimToNull("   "): null
StringUtils.trimToNull(" "):  
StringUtils.trimToNull("    "): null

例5: 返回可以处理null的toString().
StringUtils.defaultString("aaaa"): aaaa
 

转载于:java之StringUtils 用法_java getifblank-优快云博客

                        
原文链接:https://blog.youkuaiyun.com/liusaidh/article/details/144161237

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿垂爱挖掘

谢谢大家的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值