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官方文档中找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值