StringUtils 工具类使用

StringUtils 工具类使用

StringUtils 工具类使用

工具类:org.apache.commons.lang3.StringUtils

版本:commons-lang3:3.7

地址:StringUtils API

说明:StringUtils 是工作中使用最频繁的一个工具类,提供了丰富的字符串操作方法,如替换、判等、截取、计数等,每个类型都重载了很多方法,且不会抛出空指针异常。

概览

大部分方法都提供了很多重载方法,比如不区分大小写xxIgnoreCase、匹配任何xxAny、还有参数类型不同、参数个数不同的重载等,能适应绝大多数业务场景的需求。

静态常量

StringUtils 提供了最常用的常量如下,使用定义的常量能让我们的代码更清晰。

花式截取字符串

@Test

public void testSubstring() {

// 最基本的截取

System.out.println( StringUtils.substring("abcde", 1, 2) ); // b

// 截取前半部分

System.out.println( StringUtils.substringBefore("role/site/admin-(1.site.1)", "-(") ); // role/site/admin

// 截取后半部分

System.out.println( StringUtils.substringAfter("role/site/admin-(1.site.1)", "-") ); // (1.site.1)

// 截取之间的

System.out.println( StringUtils.substringBetween("role/site/admin-(1.site.1)", "(", ")") ); // 1.site.1

// 截取左边的部分

System.out.println( StringUtils.left("aabbcc", 4) ); // aabb

// 截取右边的部分

System.out.println( StringUtils.right("aabbcc", 4) ); // bbcc

// 截取中间部分

System.out.println( StringUtils.mid("aabbcc", 1, 2) ); // ab

}

各种判断空与非空

@Test

public void testIsEmpty() {

// 判断是否为空 只有为 null 或 "" 的时候才会true

System.out.println( StringUtils.isEmpty(" ") ); // false

// 判断不为空

System.out.println( StringUtils.isNotEmpty(" ") ); // true

// 判断是否为空 null、""、全空格 都为true

System.out.println( StringUtils.isBlank(" ") ); // true

// 判读不为空

System.out.println( StringUtils.isNotBlank(" ") ); // false

// 任何一个为空

System.out.println( StringUtils.isAnyEmpty("ab", " ") ); // false

// 任何一个为空

System.out.println( StringUtils.isAnyBlank("ab", " ") ); // true

// 没有为空的

System.out.println( StringUtils.isNoneEmpty("ab", "") ); // false

// 所有的都为空

System.out.println( StringUtils.isAllBlank("ab", " ") ); // false

}

判断是否相等

@Test

public void testEqual() {

// 判断是否相等 区分大小写

System.out.println( StringUtils.equals("ab", "Ab") ); // false

// 判断是否相等 不区分大小写

System.out.println( StringUtils.equalsIgnoreCase("ab", "Ab") ); // true

// 判断其中一个相等

System.out.println( StringUtils.equalsAny("ab", "Ab", "ab", "abc") ); // true

// 判断其中一个相等

System.out.println( StringUtils.equalsAnyIgnoreCase("ab", "Ab", "abc") ); // true

}

补齐

@Test

public void testPad() {

// 左边补齐

System.out.println( StringUtils.leftPad("abc", 5, "x") ); // xxabc

// 右边补齐

System.out.println( StringUtils.rightPad("abc", 5, "x") ); // abcxx

// 两边补齐

System.out.println( StringUtils.center("abc", 5, "x") ); // xabcx

}

缩短省略

@Test

public void testAbb() {

// 共计10位数 超出省略 默认 ...

System.out.println( StringUtils.abbreviate("abcdefghijklmn", 10) ); // abcdefg...

// 指定省略符

System.out.println( StringUtils.abbreviate("abcdefghijklmn", "***", 10) ); // abcdefg***

// 两边省略

System.out.println( StringUtils.abbreviate("abcdefghijklmn", 5, 10) ); // ...fghi...

}

去掉控制字符和指定字符

@Test

public void testTrim() {

// trim 主要用于去掉控制字符 ,即ASC码表小于等于32的字符,strip主要用于去掉指定字符,默认空格

// 去掉两边空白

System.out.println("[" + StringUtils.trim(" ab cd ") + "]"); // [ab cd]

// trim 去掉的是ASC码表小于等于32的字符(特殊字符)

System.out.println("[" + StringUtils.trim(" \n ab cd ") + "]"); // [ab cd]

// trim 去掉的是ASC码表小于等于32的字符(特殊字符)

System.out.println("[" + StringUtils.trim(" ab \n cd ") + "]"); // [ab \n cd]

// 如果为空则返回null

System.out.println("[" + StringUtils.trimToNull(" ") + "]"); // [null]

// 如果为空返回空

System.out.println("[" + StringUtils.trimToEmpty(null) + "]"); // []

// strip 行为和trim基本一样,可以指定去掉的字符串

char ch = 30;

System.out.println("[" + StringUtils.strip(ch+" ab cd ") + "]"); // [ab cd]

// 去掉开头的字符,null默认为空格

System.out.println("[" + StringUtils.stripStart(" ab cd ", null) + "]"); // [ab cd ]

// 去掉开头的字符,null默认为空格

System.out.println("[" + StringUtils.stripStart("ab cd ", "a") + "]"); // [b cd ]

// 去掉末尾的空格

System.out.println("[" + StringUtils.stripEnd(" ab cd ", null) + "]"); // [ ab cd]

}

相关推荐

华为WATCH 5评测:首款鸿蒙AI+麒麟+5G智能手表 2025必入之选
【新手股票入門教學】富途教你炒股入門
365网站世界杯怎么进

【新手股票入門教學】富途教你炒股入門

⌛ 07-22 👁️ 1719
这本不是人写的书,美到不可方物丨朱赢椿活动回顾