org.apache.commons.lang.StringUtils

本文介绍了一系列字符串操作的方法,包括但不限于如何判断字符串是否为空、是否只包含字母或数字等,并提供了多种字符串处理实例,如字符串的截取、重复以及比较等。

字符串判断:
例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

 

字符串包含检查:
例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)的那部分字符串.
StringUtils.difference("aaabcde", "aaaccde"): ccde

例3: 返回字符串(参数1)去掉字符串(参数2)后的那部分字符串,    如果字符串(参数1)不是以字符串(参数2)结尾则返回原串.
StringUtils.chomp("aaabcde", "de"): aaabc
StringUtils.chomp("aaabcde", "ade"): aaabcde
StringUtils.chomp("aaabcdexyz", "de"): aaabcdexyz

### 区别 - **版本与兼容性**:`org.apache.commons.lang.StringUtils` 是 Apache Commons Lang 早期版本中的类;`org.apache.commons.lang3.StringUtils` 是 Apache Commons Lang 3.x 版本引入的类,3.x 版本在设计上进行了许多改进,修复了早期版本的一些问题,同时增强了功能和性能,并且更符合现代 Java 编程的最佳实践。 - **功能特性**:`org.apache.commons.lang3.StringUtils` 相较于旧版本有更多的功能和优化。例如,在处理空值和空字符串时更加安全和健壮,提供了更多实用的字符串处理方法。 ### 使用方法 以下是使用 `org.apache.commons.lang3.StringUtils` 的一些常见示例: ```java import org.apache.commons.lang3.StringUtils; public class StringUtilsExample { public static void main(String[] args) { // 判断字符串是否为空 boolean isEmpty = StringUtils.isEmpty(""); System.out.println("字符串是否为空: " + isEmpty); // 去除字符串两端的空白 String trimmed = StringUtils.trim(" hello "); System.out.println("去除两端空白后的字符串: " + trimmed); // 拼接字符串 String joined = StringUtils.join(new String[]{"a", "b", "c"}, ","); System.out.println("拼接后的字符串: " + joined); } } ``` 使用 `org.apache.commons.lang.StringUtils` 的方法与之类似,只是需要替换导入的类路径。 ### 特性 #### org.apache.commons.lang3.StringUtils - **安全性**:对空值和空字符串的处理更加安全,许多方法在传入 `null` 时不会抛出 `NullPointerException`,而是返回合理的结果,如 `isEmpty(null)` 返回 `true`。 - **功能丰富**:提供了大量实用的字符串处理方法,如字符串的拼接、分割、替换、大小写转换、去除空白等。 - **性能优化**:在实现上进行了性能优化,能够更高效地处理字符串操作。 #### org.apache.commons.lang.StringUtils - **基本功能**:具备一些基本的字符串处理功能,如判断字符串是否为空、去除空白等,但功能相对较少。 - **兼容性**:在一些旧项目中可能仍在使用,以保持与旧代码的兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值