龙空技术网

使用Apache Commons Lang 3进行字符串处理

无发条小儿 322

前言:

当前同学们对“apachelang”大约比较关心,我们都需要了解一些“apachelang”的相关内容。那么小编同时在网络上网罗了一些对于“apachelang””的相关文章,希望我们能喜欢,兄弟们一起来了解一下吧!

1.概述

Apache Commons Lang 3库提供了Java的API的核心类的操作支持。此支持包括处理字符串,数字,日期,并发,对象反射等的方法。

除了提供对库的一般介绍之外,本教程还演示了 StringUtils 类的方法,该类用于处理 String 实例。

2. Maven依赖

要使用Commons Lang 3库,只需使用以下依赖项从中央Maven存储库中提取它:

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

3. StringUtils

该 StringUtils的 类提供了 null-safe 的字符串操作。

此类的许多方法都具有在类java.lang.String中定义的相应方法,这些方法不是 null -safe。但是,本节将重点介绍几个在 String 类中没有等效的方法。

4. containsAny 方法

该 containsAny 方法检查是否一个给定的 字符串 包含在给定的字符集的任何字符。这组字符可以以 String 或 char var args 的形式传递。

以下代码片段演示了如何使用此方法的两种重载方式和结果验证:

String string = "baeldung.com" ; boolean contained1 = StringUtils.containsAny(string, 'a' , 'b' , 'c' ); boolean contained2 = StringUtils.containsAny(string, 'x' , 'y' , 'z' ); boolean contained3 = StringUtils.containsAny(string, "abc" ); boolean contained4 = StringUtils.containsAny(string, "xyz" ); assertTrue(contained1); assertFalse(contained2); assertTrue(contained3); assertFalse(contained4);

5. containsIgnoreCase 方法

该 containsIgnoreCase 方法检查是否一个给定的 字符串 包含另一个 字符串 在不区分大小写的方式。

以下代码片段在忽略大小写时验证 字符串"baeldung.com"是否 包含 "BAELDUNG" :

String string = "baeldung.com" ; boolean contained = StringUtils.containsIgnoreCase(string, "BAELDUNG" ); assertTrue(contained);

6. countMatches 方法

counterMatches 方法计算字符或字符串出现了多少次在给定的 字符串。

以下是此方法的演示,确认 'w' 出现四次, "com" 在 字符串 "welcome to "中出现两次:

String string = "welcome to " ; int charNum = StringUtils.countMatches(string, 'w' ); int stringNum = StringUtils.countMatches(string, "com" ); assertEquals( 4 , charNum); assertEquals( 2 , stringNum);

7.Appending and Prepending Method

的 appendIfMissing 和 appendIfMissingIgnoreCase 方法j将后缀append到一个给定的字符串,如果它不以任何传入的后缀结束(case sensitive或insensitive)。

类似地, prependIfMissing 和 prependIfMissingIgnoreCase 方法在给定 String 的开头添加前缀, 前提 是它不以任何传入的前缀开头。

在以下示例中, appendIfMissing 和 prependIfMissing 方法用于向 String"baeldung.com" 添加后缀和前缀,而不重复这些词缀:

String string = "baeldung.com" ; String stringWithSuffix = StringUtils.appendIfMissing(string, ".com" ); String stringWithPrefix = StringUtils.prependIfMissing(string, "www." ); assertEquals( "baeldung.com" , stringWithSuffix); assertEquals( "" , stringWithPrefix);

8. case变更方法

该 字符串 类已经定义了方法的所有字符转换的 字符串 为大写或小写。

swapCase 颠倒大小写

String originalString = "baeldung.COM" ; String swappedString = StringUtils.swapCase(originalString); assertEquals( "BAELDUNG.com" , swappedString);

capitalize方法转换给定的第一个字符为大写,剩下的所有剩余的字符不变:

String originalString = "baeldung" ; String capitalizedString = StringUtils.capitalize(originalString); assertEquals( "Baeldung" , capitalizedString);

该 uncapitalize 方法转换给定的第一个字符为小写,使所有剩余的字符不变:

String originalString = "Baeldung" ; String uncapitalizedString = StringUtils.uncapitalize(originalString); assertEquals( "baeldung" , uncapitalizedString);

9.Reversing方法

StringUtils定义了反转字符串的两种方法: reverse 和 reverseDelimited 。reverse方法重新排列的所有字符 的字符串 以相反的顺序,而 reverseDelimited 方法重新排序字符组,由一个指定的分隔符隔开。

以下代码片段反转字符串 "baeldung" 并验证结果:

String originalString = "baeldung" ; String reversedString = StringUtils.reverse(originalString); assertEquals( "gnudleab" , reversedString);

使用 reverseDelimited 方法,字符在组中反转而不是单独反转:

String originalString = "" ; String reversedString = StringUtils.reverseDelimited(originalString, '.' ); assertEquals( "com.baeldung.www" , reversedString);

10. rotate方法

rotate方法循环移位多个位置。下面的代码片段将 字符串"baeldung"的 所有字符向右移动四个位置并验证结果:

String originalString = "baeldung" ; String rotatedString = StringUtils.rotate(originalString, 4 ); assertEquals( "dungbael" , rotatedString);

11. difference方法

difference方法比较两个字符串,返回第二个参数不一样的剩余字符。以下代码片段在两个方向上比较两个字符串:"Baeldung Tutorials" 和 "Baeldung Courses" 并验证结果:

String tutorials = "Baeldung Tutorials" ; String courses = "Baeldung Courses" ; String diff1 = StringUtils.difference(tutorials, courses); String diff2 = StringUtils.difference(courses, tutorials); assertEquals( "Courses" , diff1); assertEquals( "Tutorials" , diff2);

详情:

标签: #apachelang