Apache Commons中的StringUtils工具包

工具包

lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3

lang包可以说是废弃了,以后请不要使用。采用lang3直接代替即可
在这里插入图片描述

 <!--常用工具类 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

主要介绍其中的StringUtils工具类

1. isEmpty

@SpringBootTest
class DemotextApplicationTests {

    @Test
    void contextLoads() {
        System.out.println(StringUtils.isEmpty(null));//true
        System.out.println(StringUtils.isEmpty(""));//true
        System.out.println(StringUtils.isEmpty(" "));//false
        System.out.println(StringUtils.isEmpty("bob"));//false
        System.out.println(StringUtils.isEmpty("  bob  "));//false
    }

}

2. isAnyEmpty任意一个参数为空的话,返回true。如果这些参数都不为空的话返回false。

** isNoneEmpty(CharSequence… css) 和isAnyEmpty取返**

   @Test
    void contextLoads() {
        System.out.println(StringUtils.isAnyEmpty(null));//false
        System.out.println(StringUtils.isAnyEmpty(null, "foo"));// true
        System.out.println(StringUtils.isAnyEmpty("", "bar"));//    true
        System.out.println(StringUtils.isAnyEmpty("bob", ""));// true
        System.out.println(StringUtils.isAnyEmpty("  bob  ", null));// true
        System.out.println(StringUtils.isAnyEmpty(" ", "bar"));//   false
        System.out.println(StringUtils.isAnyEmpty("foo", "bar"));//     false
    }

3. isBlank空白

@Test
    void contextLoads() {
        System.out.println(StringUtils.isBlank(null));   ;// true
        System.out.println(StringUtils.isBlank(""));      ; // true
        System.out.println(StringUtils.isBlank(" "));    ;// true //注意此处是null哦  这和isEmpty不一样的
        System.out.println(StringUtils.isBlank("bob"));//false
        System.out.println(StringUtils.isBlank("  bob  "));//false
    }

isAnyBlank、isNoneBlank这里就不再解释了

4.trim(String str)

移除字符串两端的空字符串,制表符char <= 32如:\n \t 如果为null返回null

注意:移除的是两端,字符串中间的不会被移除,如果想要清除全部使用下面的8

 @Test
    void contextLoads() {
        System.out.println(StringUtils.trim(null));//null
        System.out.println(StringUtils.trim(""));//""
        System.out.println(StringUtils.trim("     "));//""
        System.out.println(StringUtils.trim("abc"));//abc
        System.out.println(StringUtils.trim("    abc    "));//abc
    }

5. ordinalIndexOf字符串在另外一个字符串里,出现第Ordinal次的位置

  @Test
    void contextLoads() {
        StringUtils.ordinalIndexOf("aabaabaa", "a", 1);// 0
        StringUtils.ordinalIndexOf("aabaabaa", "a", 2);// 1
        StringUtils.ordinalIndexOf("aabaabaa", "b", 1);// 2
        StringUtils.ordinalIndexOf("aabaabaa", "b", 2);// 5
        StringUtils.ordinalIndexOf("aabaabaa", "ab", 1);// 1
        StringUtils.ordinalIndexOf("aabaabaa", "ab", 2);// 4
        StringUtils.ordinalIndexOf("aabaabaa", "", 1);// 0 //空串永远访问0
        StringUtils.ordinalIndexOf("aabaabaa", "", 2);// 0 //空串永远访问0
    }

对应的有:lastOrdinalIndexOf方法

6.截取字符串

  @Test
    void contextLoads() {
        //从左边开始截取指定个数
        System.out.println(StringUtils.left("adsdfas", 2));//ad
        //从右边开始截取指定个数
        System.out.println(StringUtils.right("adsdfas", 2));//as
        //从中间的指定位置开始截取  指定个数
        System.out.println(StringUtils.mid("adsdfas", 2,2));//sd
    }

substringBefore , substringAfter

 String s = "123 I abc";
		//从分隔符第一次出现的位置向前截取
		System.out.println(StringUtils.substringBefore(s, " ")); //123
		//从分隔符最后一次出现的位置向前截取:
		System.out.println(StringUtils.substringBeforeLast(s, " "));//123 I
		//从分隔符第一次出现的位置向后截取
		System.out.println(StringUtils.substringAfter(s, " "));//I abc
		//从分隔符最后一次出现的位置向后截取
		System.out.println(StringUtils.substringAfterLast(s, " "));//abc

7.Join把集合合并指定字符串

默认使用空串Join

 StringUtils.join(null)            // null
 StringUtils.join([])              // ""
 StringUtils.join([null])          // ""
 StringUtils.join(["a", "b", "c"]) // "abc"
 StringUtils.join([null, "", "a"]) // "a"

自定义符号:特定字符串连接数组,很多情况下还是蛮实用,不用自己取拼字符串

StringUtils.join(null, *)    // null
        StringUtils.join([], *)                // ""
        StringUtils.join([null], *)            // ""
        StringUtils.join(["a", "b", "c"], ';') // "a;b;c"
        StringUtils.join(["a", "b", "c"], null)// "abc"
        StringUtils.join([null, "", "a"], ';') // ";;a" //注意这里和上面的区别

8.deleteWhitespace删除空格 这个方法还挺管用的。比trim给力

 StringUtils.deleteWhitespace(null);// null
 StringUtils.deleteWhitespace("");// ""
 StringUtils.deleteWhitespace("abc");// "abc"
 StringUtils.deleteWhitespace("   ab  c  ");// "abc"

9.removeStart删除以特定字符串开头的字符串,如果没有的话,就不删除。

   StringUtils.removeStart(null, *);// null
        StringUtils.removeStart("", *);// ""
        StringUtils.removeStart( *, null);// *
        StringUtils.removeStart("www.domain.com", "www.");// "domain.com"
        StringUtils.removeStart("domain.com", "www.");// "domain.com"
        StringUtils.removeStart("www.domain.com", "domain");// "www.domain.com" //注意这个结果哟  并没有删除任何东西
        StringUtils.removeStart("abc", "");// "abc"

10.rightPad可以右边自动用指定的字符补全至指定长度

        StringUtils.rightPad(null, *, *)     ;// null
        StringUtils.rightPad("", 3, 'z')    ;// "zzz"
        StringUtils.rightPad("bat", 3, 'z') ;// "bat"
        StringUtils.rightPad("bat", 5, 'z') ;// "batzz"
        StringUtils.rightPad("bat", 1, 'z') ;// "bat"
        StringUtils.rightPad("bat", -1, 'z');// "bat

对应的:leftPad 左边自动补全

11. capitalize(String str)、uncapitalize 首字母大、小写

12.swapCase(String str) 大变小 小变大

 StringUtils.swapCase(null)                ;// null
 StringUtils.swapCase("")                  ;// ""
 StringUtils.swapCase("The dog has a BONE");// "tHE DOG HAS A bone"

13.isAlpha判断字符串是否全由字母组成 (只要存在汉字、中文、数字都为false)

StringUtils.isAlpha(null)  ;// false
 StringUtils.isAlpha("")    ;// false
 StringUtils.isAlpha("  ")   ;// false
 StringUtils.isAlpha("abc")  ;// true
 StringUtils.isAlpha("ab2c") ;// false
 StringUtils.isAlpha("ab-c") ;//false

14.reverse字符串翻转

 StringUtils.reverse(null)  = null
 StringUtils.reverse("")    = ""
 StringUtils.reverse("bat") = "tab"

15. abbreviate缩略字符串,省略号要占三位。maxWith小于3位会报错。

StringUtils.abbreviate(null, *)      ;// null
 StringUtils.abbreviate("", 4)         ;// ""
 StringUtils.abbreviate("abcdefg", 6)  ;// "abc..."
 StringUtils.abbreviate("abcdefg", 7)  ;// "abcdefg"
 StringUtils.abbreviate("abcdefg", 8)  ;// "abcdefg"
 StringUtils.abbreviate("abcdefg", 4)  ;// "a..."
 StringUtils.abbreviate("abcdefg", 3)  ;// IllegalArgumentException

16.wrap包装,用后面的字符串对前面的字符串进行包装其实相当于前后拼了相同的串

StringUtils.wrap(null, *)        ;// null
 StringUtils.wrap("", *)          ;// ""
 StringUtils.wrap("ab", '\0')      ;// "ab"
 StringUtils.wrap("ab", 'x')      ;// "xabx"
 StringUtils.wrap("ab", '\'')      ;// "'ab'"
 StringUtils.wrap("\"ab\"", '\"')  ;// "\"\"ab\"\""

17isAllBlank、isAllEmpty

这些都不解释了。处理数组可变参数而已

18isAllLowerCase、isAllUpperCase

判断字符串所有字符是否都是大、小写

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yzhSWJ

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值