StringUtils常用方法解析
StringUtils常用方法解析
StringUtils是Apache Commons Lang库中的一个工具类,提供了许多用于处理字符串的实用方法。以下是一些StringUtils中常用的方法:
1. isEmpty / isNotEmpty
isEmpty(String str): 检查字符串是否为null或空字符串。返回true表示为空,否则返回false。
isNotEmpty(String str): 检查字符串是否不为null且不为空字符串。返回true表示不为空,否则返回false。参数说明:
str: 要检查的字符串。
StringUtils.isEmpty(null); // true
StringUtils.isEmpty(""); // true
StringUtils.isEmpty(" "); // false
StringUtils.isNotEmpty("Hello"); // true
2. isBlank / isNotBlank
isBlank(String str): 检查字符串是否为null、空字符串或仅包含空格。返回true表示为空白,否则返回false。
isNotBlank(String str): 检查字符串是否不为null且不为空字符串,且不仅包含空格。返回true表示不为空白,否则返回false。参数说明:
str: 要检查的字符串。
StringUtils.isBlank(null); // true
StringUtils.isBlank(""); // true
StringUtils.isBlank(" "); // true
StringUtils.isNotBlank("Hello"); // true
3. trim / strip
trim(String str): 去除字符串首尾的空格。返回去除空格后的字符串。
strip(String str): 去除字符串首尾的空格,支持Unicode空格字符。返回去除空格后的字符串。参数说明:
str: 要去除空格的字符串。
StringUtils.trim(" Hello "); // "Hello"
StringUtils.strip(" Hello "); // "Hello"
4. equals / equalsIgnoreCase
equals(CharSequence str1, CharSequence str2): 比较两个字符串是否相等,防止null引起的NullPointerException。返回true表示相等,否则返回false。
equalsIgnoreCase(String str1, String str2): 忽略大小写比较两个字符串是否相等。返回true表示相等,否则返回false。参数说明:
str1: 第一个要比较的字符串。str2: 第二个要比较的字符串。
StringUtils.equals("hello", "hello"); // true
StringUtils.equals(null, "hello"); // false
StringUtils.equalsIgnoreCase("Hello", "hello"); // true
5. substring
substring(String str, int start): 截取字符串从指定位置开始到字符串结束。返回截取的子字符串。
substring(String str, int start, int end): 截取字符串从指定位置开始到指定位置结束。返回截取的子字符串。参数说明:
str: 要截取的字符串。start: 截取开始的位置。end: 截取结束的位置。
StringUtils.substring("Hello World", 6); // "World"
StringUtils.substring("Hello World", 0, 5); // "Hello"
6. replace / replaceIgnoreCase
replace(String text, String searchString, String replacement): 替换字符串中的指定子字符串。返回替换后的字符串。
replaceIgnoreCase(String text, String searchString, String replacement): 忽略大小写替换字符串中的指定子字符串。返回替换后的字符串。参数说明:
text: 要替换的原始字符串。searchString: 要替换的子字符串。replacement: 替换的新字符串。
StringUtils.replace("Hello, world!", "world", "Java"); // "Hello, Java!"
StringUtils.replaceIgnoreCase("Hello, World!", "world", "Java"); // "Hello, Java!"
7. join
join(Iterable<?> iterable, String separator): 将集合中的元素连接成一个字符串,使用指定的分隔符。返回连接后的字符串。参数说明:
iterable: 要连接的元素集合。separator: 分隔符。
List<String> list = Arrays.asList("apple", "banana", "orange");
StringUtils.join(list, ", "); // "apple, banana, orange"
8. startsWith / endsWith
startsWith(CharSequence str, CharSequence prefix): 检查字符串是否以指定的前缀开头。返回true表示是以前缀开头,否则返回false。
endsWith(CharSequence str, CharSequence suffix): 检查字符串是否以指定的后缀结尾。返回true表示是以后缀结尾,否则返回false。参数说明:
str: 要检查的字符串。prefix: 要检查的前缀。suffix: 要检查的后缀。
StringUtils.startsWith("Hello World", "Hello"); // true
StringUtils.endsWith("Hello World", "World"); // true
9. contains
contains(CharSequence seq, CharSequence searchSeq): 检查字符串是否包含指定的子字符串。返回true表示包含,否则返回false。参数说明:
seq: 要检查的字符串。searchSeq: 要查找的子字符串。
StringUtils.contains("Hello World", "lo"); // true
10. indexOf / lastIndexOf
indexOf(CharSequence seq, CharSequence searchSeq): 返回指定子字符串在字符串中第一次出现的位置,如果未找到则返回-1。
lastIndexOf(CharSequence seq, CharSequence searchSeq): 返回指定子字符串在字符串中最后一次出现的位置,如果未找到则返回-1。参数说明:
seq: 要查找的字符串。searchSeq: 要查找的子字符串。
StringUtils.indexOf("Hello World", "l"); // 2
StringUtils.lastIndexOf("Hello World", "l"); // 9
11. substringBefore / substringAfter
substringBefore(String str, String separator): 返回指定分隔符之前的子字符串。如果找不到分隔符,则返回原始字符串。
substringAfter(String str, String separator): 返回指定分隔符之后的子字符串。如果找不到分隔符,则返回空字符串。参数说明:
str: 要处理的字符串。separator: 分隔符。
StringUtils.substringBefore("apple,orange,banana", ","); // "apple"
StringUtils.substringAfter("apple,orange,banana", ","); // "orange,banana"
12. left / right
left(String str, int len): 返回字符串左侧的指定长度的子字符串。如果长度大于字符串长度,则返回整个字符串。
right(String str, int len): 返回字符串右侧的指定长度的子字符串。如果长度大于字符串长度,则返回整个字符串。参数说明:
str: 要处理的字符串。len: 截取的长度。
StringUtils.left("Hello World", 5); // "Hello"
StringUtils.right("Hello World", 5); // "World"
13. capitalize / uncapitalize
capitalize(String str): 将字符串的第一个字符转换为大写。返回转换后的字符串。
uncapitalize(String str): 将字符串的第一个字符转换为小写。返回转换后的字符串。参数说明:
str: 要处理的字符串。
StringUtils.capitalize("hello"); // "Hello"
StringUtils.uncapitalize("Hello"); // "hello"
14. substringBetween
substringBetween(String str, String open, String close): 返回在指定开放和关闭字符串之间的子字符串。如果找不到匹配的开放和关闭字符串,则返回null。参数说明:
str: 要查找的字符串。open: 开放字符串。close: 关闭字符串。
StringUtils.substringBetween("The [quick] brown fox", "[", "]"); // "quick"
15. defaultIfBlank / defaultIfEmpty
defaultIfBlank(String str, String defaultValue): 如果字符串为空、空字符串或只包含空格,则返回默认值。否则返回原始字符串。
defaultIfEmpty(String str, String defaultValue): 如果字符串为空或空字符串,则返回默认值。否则返回原始字符串。参数说明:
str: 要处理的字符串。defaultValue: 默认值。
StringUtils.defaultIfBlank(null, "default"); // "default"
StringUtils.defaultIfBlank(" ", "default"); // "default"
StringUtils.defaultIfEmpty(null, "default"); // "default"
StringUtils.defaultIfEmpty("", "default"); // "default"
16. reverse
reverse(String str): 反转字符串。返回反转后的字符串。参数说明:
str: 要反转的字符串。
StringUtils.reverse("Hello"); // "olleH"
17. swapCase
swapCase(String str): 将字符串中的大写字母转换为小写字母,小写字母转换为大写字母。返回转换后的字符串。参数说明:
str: 要处理的字符串。
StringUtils.swapCase("Hello World"); // "hELLO wORLD"
18. abbreviate
abbreviate(String str, int maxWidth): 缩短字符串,如果超过指定宽度则截断并添加省略号。返回缩短后的字符串。参数说明:
str: 要缩短的字符串。maxWidth: 最大宽度。
StringUtils.abbreviate("Hello World", 7); // "He..."
19. difference
difference(String str1, String str2): 返回两个字符串的不同部分。返回不同的部分字符串。参数说明:
str1: 第一个字符串。str2: 第二个字符串。
StringUtils.difference("abcde", "abxyz"); // "xyz"
20. wrap
wrap(String str, String wrapWith): 在字符串前后包装指定的字符串。返回包装后的字符串。参数说明:
str: 要包装的字符串。wrapWith: 包装字符串。
StringUtils.wrap("Hello", "--"); // "--Hello--"
21. chomp
chomp(String str): 移除字符串末尾的换行符(\n)。返回移除换行符后的字符串。参数说明:
str: 要处理的字符串。
StringUtils.chomp("Hello\n"); // "Hello"
22. countMatches
countMatches(String str, String sub): 计算字符串中子字符串出现的次数。返回出现的次数。参数说明:
str: 要搜索的字符串。sub: 要计数的子字符串。
StringUtils.countMatches("abcaabc", "ab"); // 2
23. isAlpha / isAlphanumeric / isNumeric
isAlpha(String str): 检查字符串是否只包含字母。返回true表示是,否则返回false。
isAlphanumeric(String str): 检查字符串是否只包含字母和数字。返回true表示是,否则返回false。
isNumeric(String str): 检查字符串是否只包含数字。返回true表示是,否则返回false。参数说明:
str: 要检查的字符串。
StringUtils.isAlpha("abc"); // true
StringUtils.isAlphanumeric("abc123"); // true
StringUtils.isNumeric("123"); // true
24. leftPad / rightPad
leftPad(String str, int size, char padChar): 在字符串左侧填充指定字符,使其达到指定长度。返回填充后的字符串。
rightPad(String str, int size, char padChar): 在字符串右侧填充指定字符,使其达到指定长度。返回填充后的字符串。参数说明:
str: 要填充的字符串。size: 最终字符串的长度。padChar: 用于填充的字符。
StringUtils.leftPad("123", 5, '0'); // "00123"
StringUtils.rightPad("123", 5, '0'); // "12300"
25. substringAfterLast / substringBeforeLast
substringAfterLast(String str, String separator): 返回字符串中最后一个分隔符之后的子字符串。如果找不到分隔符,则返回空字符串。
substringBeforeLast(String str, String separator): 返回字符串中最后一个分隔符之前的子字符串。如果找不到分隔符,则返回原始字符串。参数说明:
str: 要处理的字符串。separator: 分隔符。
StringUtils.substringAfterLast("apple,orange,banana", ","); // "banana"
StringUtils.substringBeforeLast("apple,orange,banana", ","); // "apple,orange"
26. hasText
public static boolean hasText(String str): 返回字符串中最后一个分隔符之后的子字符串。如果找不到分隔符,则返回空字符串。如果给定的字符串不为null且包含至少一个非空格字符,则返回true;如果给定的字符串为null或不包含任何非空格字符,则返回false;参数说明:
str: 要处理的字符串。
String text1 = "Hello, World!";
String text2 = " "; // contains only spaces
String text3 = null;
boolean hasText1 = StringUtils.hasText(text1); // true
boolean hasText2 = StringUtils.hasText(text2); // false
boolean hasText3 = StringUtils.hasText(text3); // false
27. capitalizeFully
capitalizeFully(String str): 将字符串每个单词的第一个字符大写,其余字符小写。返回转换后的字符串。参数说明:
str: 要处理的字符串。
StringUtils.capitalizeFully("apple orange banana"); // "Apple Orange Banana"
28. remove / removeEnd / removeStart
remove(String str, String remove): 移除字符串中的指定子字符串。返回移除后的字符串。
removeEnd(String str, String remove): 移除字符串末尾的指定子字符串。返回移除后的字符串。
removeStart(String str, String remove): 移除字符串开头的指定子字符串。返回移除后的字符串。参数说明:
str: 要处理的字符串。remove: 要移除的子字符串。
StringUtils.remove("Hello World", "l"); // "Heo Word"
StringUtils.removeEnd("Hello World", "d"); // "Hello Worl"
StringUtils.removeStart("Hello World", "H"); // "ello World"
29. stripAccents
stripAccents(String input): 移除字符串中的重音符号。返回移除重音符号后的字符串。参数说明:
input: 要处理的字符串。
StringUtils.stripAccents("éàü"); // "eau"
30. replaceEach
replaceEach(String text, String[] searchList, String[] replacementList): 使用给定的字符串数组进行多重替换。返回替换后的字符串。参数说明:
text: 要进行替换的原始字符串。searchList: 要查找和替换的字符串数组。replacementList: 替换成的字符串数组。
String[] searchList = new String[]{"apple", "orange", "banana"};
String[] replacementList = new String[]{"fruit1", "fruit2", "fruit3"};
StringUtils.replaceEach("apple orange banana", searchList, replacementList); // "fruit1 fruit2 fruit3"
这些方法覆盖了各种字符串处理的场景,从简单的判断字符串是否为空到更复杂的文本操作。在使用时,请根据你的具体需求选择适当的方法。完整的方法列表和详细的文档可以在Apache Commons Lang官方文档中找到。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!