org.apache.commons.lang.StringUtils
是 Apache Commons Lang 库中的一个非常有用的类,它为操作和检查String
提供了大量的静态方法。这里我将概述这个类中一些常用方法的用途和基本用法。
1、空白检查
isEmpty(String str)
: 如果给定的字符串为null
或者长度为0(即为空字符串""),则返回true
。否则返回false
。
StringUtils.isEmpty(null); // true
StringUtils.isEmpty(""); // true
StringUtils.isEmpty(" "); // false
StringUtils.isEmpty("bob"); // false
isNotBlank(String str)
: 如果给定的字符串不是空白、不是空字符串""、也不是null
,则返回true
。否则返回false
。
StringUtils.isNotBlank(null); // false
StringUtils.isNotBlank(""); // false
StringUtils.isNotBlank(" "); // false
StringUtils.isNotBlank("bob"); // true
StringUtils.isNotBlank(" bob "); // true
2、修剪
trim(String str)
: 除去字符串前后的控制字符(小于等于U+0020
的字符)。如果字符串是null
,则返回null
。
StringUtils.trim(null); // null
StringUtils.trim(""); // ""
StringUtils.trim(" "); // ""
StringUtils.trim("abc"); // "abc"
StringUtils.trim(" abc "); // "abc"
trimToEmpty(String str)
: 和trim()
方法类似,但是如果原字符串为null
,则返回空字符串""。
StringUtils.trimToEmpty(null); // ""
StringUtils.trimToEmpty(""); // ""
StringUtils.trimToEmpty(" "); // ""
StringUtils.trimToEmpty("abc"); // "abc"
StringUtils.trimToEmpty(" abc "); // "abc"
3、比较和替换
equals(String str1, String str2)
: 比较两个字符串是否相等,完全匹配,区分大小写。只有在两个字符串都是null
的情况下才返回true
。
StringUtils.equals(null, null); // true
StringUtils.equals(null, "abc"); // false
StringUtils.equals("abc", null); // false
StringUtils.equals("abc", "abc"); // true
StringUtils.equals("abc", "ABC"); // false
replace(String text, String searchString, String replacement)
: 在text
字符串中,将所有匹配searchString
的地方替换成replacement
。如果任一输入是null
,则返回原字符串。
StringUtils.replace(null, "*", ""); // null
StringUtils.replace("any", null, ""); // "any"
StringUtils.replace("any", "*", null); // "any"
StringUtils.replace("any", "", null); // "any"
StringUtils.replace("aba", "a", null); // "aba"
StringUtils.replace("aba", "a", ""); // "b"
StringUtils.replace("aba", "a", "z"); // "zbz"
4、查找和切割
substring(String str, int start, int end)
: 截取字符串的一部分,从索引start
(包含)开始到索引end
(不包含)。start
或end
可以为负数,表示从字符串末尾开始计算位置。如果字符串为null
,则返回null
。
StringUtils.substring(null, 0, 2); // null
StringUtils.substring("", 0, 2); // ""
StringUtils.substring("abc", 0, 2); // "ab"
StringUtils.substring("abc", 2, 0); // ""
StringUtils.substring("abc", 2, 4); // "c"
StringUtils.substring("abc", 4, 6); // ""
StringUtils.substring("abc", 2, 2); // ""
StringUtils.substring("abc", -2, -1); // "b"
StringUtils.substring("abc", -4, 2); // "ab"
5、字符串连接
join(Object[] array, char separator)
: 将对象数组中的元素连接为一个字符串,使用指定的分隔符。
StringUtils.join(new String[]{"a", "b", "c"}, '-'); // "a-b-c"
StringUtils.join(new Object[]{1, 2, 3}, ','); // "1,2,3"
6、字符串重复
repeat(String str, int repeat)
: 将给定的字符串重复N次。
StringUtils.repeat("ab", 2); // "abab"
StringUtils.repeat("a", 3); // "aaa"
StringUtils.repeat("-", 5); // "-----"
7、字符串中字符的数量
countMatches(CharSequence str, CharSequence sub)
: 返回子字符序列在父字符序列中出现的次数。
StringUtils.countMatches("abba", "a"); // 2
StringUtils.countMatches("abba", "ab"); // 1
StringUtils.countMatches("abba", "x"); // 0
8、判断字符串是否只含有某类型字符
isAlpha(String str)
: 检查字符串中是否只含有字母字符,空字符串将返回false
。
StringUtils.isAlpha(null); // false
StringUtils.isAlpha(""); // false
StringUtils.isAlpha(" "); // false
StringUtils.isAlpha("abc"); // true
isNumeric(String str)
: 检查字符串中是否只含有数字字符,空字符串将返回false
。
StringUtils.isNumeric(null); // false
StringUtils.isNumeric(""); // false
StringUtils.isNumeric("123"); // true
StringUtils.isNumeric("12 3"); // false
StringUtils.isNumeric("ab2c"); // false
isAlphanumeric(String str)
: 检查字符串是否只含有字母和数字,空字符串将返回false
。
StringUtils.isAlphanumeric(null); // false
StringUtils.isAlphanumeric(""); // false
StringUtils.isAlphanumeric("ab23c"); // true
StringUtils.isAlphanumeric("ab c"); // false
9、字符串填充
rightPad(String str, int size, char padChar)
: 将指定字符填充到字符串右侧,直到达到指定的长度。
StringUtils.rightPad("bat", 5, 'z'); // "batzz"
StringUtils.rightPad("bat", 5, ' '); // "bat "
StringUtils.rightPad("bat", 3, 'z'); // "bat"
leftPad(String str, int size, char padChar)
: 将指定字符填充到字符串左侧,直到达到指定的长度。
StringUtils.leftPad("bat", 5, 'z'); // "zzbat"
StringUtils.leftPad("bat", 5, ' '); // " bat"
StringUtils.leftPad("bat", 3, 'z'); // "bat"
10、字符串大小写转换
capitalize(String str)
: 将字符串的首字母大写,其余字母小写。
StringUtils.capitalize("cat"); // "Cat"
StringUtils.capitalize("cAt"); // "Cat"
StringUtils.capitalize("Cat"); // "Cat"
uncapitalize(String str)
: 将字符串的首字母小写,其余字母不变。
StringUtils.uncapitalize("Cat"); // "cat"
StringUtils.uncapitalize("CAT"); // "cAT"
upperCase(String str)
: 将字符串中的所有字母转换为大写。
StringUtils.upperCase("Cat"); // "CAT"
StringUtils.upperCase("cat"); // "CAT"
lowerCase(String str)
: 将字符串中的所有字母转换为小写。
StringUtils.lowerCase("Cat"); // "cat"
StringUtils.lowerCase("CAT"); // "cat"
org.apache.commons.lang.StringUtils
包含大量方法,只列举一部分,其余的方法建议查阅最新的文档或源代码以获取完整的方法列表和各自的详细描述。