字符序列工具-CharSequenceUtil
# 字符序列工具-CharSequenceUtil
CharSequenceUtil是Hutool中用于处理各种字符序列(CharSequence)的工具类,支持String、StringBuilder、StringBuffer等多种字符序列类型,提供了与StrUtil类似的功能,但更加通用。
# 1. 字符序列判断
# 1.1 空值判断
// 判断字符序列是否为null或空
boolean isEmpty = CharSequenceUtil.isEmpty("";
boolean isEmpty = CharSequenceUtil.isEmpty(null);
// 判断字符序列是否为null、空或空白字符
boolean isBlank = CharSequenceUtil.isBlank(" ");
// 判断字符序列是否不为空
boolean isNotEmpty = CharSequenceUtil.isNotEmpty("abc");
// 判断字符序列是否不为空白
boolean isNotBlank = CharSequenceUtil.isNotBlank("abc");
# 1.2 内容判断
// 判断字符序列是否以指定前缀开头
boolean startsWith = CharSequenceUtil.startWith("abc", "a");
// 判断字符序列是否以指定后缀结尾
boolean endsWith = CharSequenceUtil.endWith("abc", "c");
// 判断字符序列是否包含指定子串
boolean contains = CharSequenceUtil.contains("abc", "b");
# 2. 字符序列转换
# 2.1 类型转换
// 转换为String
String str = CharSequenceUtil.toString(new StringBuilder("abc"));
// 转换为StringBuilder
StringBuilder sb = CharSequenceUtil.toBuilder("abc");
// 转换为StringBuffer
StringBuffer sbuf = CharSequenceUtil.toBuffer("abc");
# 2.2 格式转换
// 格式化字符序列
CharSequence formatted = CharSequenceUtil.format("Hello, {}!", "world");
# 3. 字符序列修剪
# 3.1 去除空白
// 去除字符序列两端空白
CharSequence trimmed = CharSequenceUtil.trim(" abc ");
// 去除字符序列左端空白
CharSequence ltrimmed = CharSequenceUtil.ltrim(" abc ");
// 去除字符序列右端空白
CharSequence rtrimmed = CharSequenceUtil.rtrim(" abc ");
# 3.2 去除指定字符
// 去除字符序列两端指定字符
CharSequence stripped = CharSequenceUtil.strip("'abc'", "'");
# 4. 字符序列分割
# 4.1 基础分割
// 按指定分隔符分割字符序列
String[] parts = CharSequenceUtil.split("a,b,c", ',');
// 分割为List
List<String> partList = CharSequenceUtil.splitToList("a,b,c", ',');
# 4.2 高级分割
// 按空白字符分割
String[] parts = CharSequenceUtil.split("a b c");
# 5. 字符序列拼接
// 拼接字符序列
CharSequence joined = CharSequenceUtil.join(",", "a", "b", "c");
// 拼接字符序列数组
CharSequence[] array = {"a", "b", "c"};
CharSequence joined = CharSequenceUtil.join(",", array);
# 6. 字符序列替换
# 6.1 基础替换
// 替换指定子串
CharSequence replaced = CharSequenceUtil.replace("abc", "b", "B");
// 替换所有匹配的子串
CharSequence replaced = CharSequenceUtil.replaceAll("ababa", "a", "A");
// 替换第一个匹配的子串
CharSequence replaced = CharSequenceUtil.replaceFirst("ababa", "a", "A");
# 6.2 正则替换
// 使用正则表达式替换
CharSequence replaced = CharSequenceUtil.replaceRegex("abc123", "\\d+", "");
# 7. 字符序列截取
# 7.1 基础截取
// 截取指定位置的子串
CharSequence sub = CharSequenceUtil.sub("abcdef", 1, 4);
// 从指定位置截取到字符序列末尾
CharSequence sub = CharSequenceUtil.subSuf("abcdef", 2);
// 截取字符序列开头指定长度的子串
CharSequence sub = CharSequenceUtil.subPre("abcdef", 3);
# 7.2 高级截取
// 截取字符序列中两个子串之间的内容
CharSequence between = CharSequenceUtil.subBetween("<tag>content</tag>", "<tag>", "</tag>");
// 截取字符序列中指定前缀之后的内容
CharSequence after = CharSequenceUtil.subAfter("abcdef", "c", false);
// 截取字符序列中指定后缀之前的内容
CharSequence before = CharSequenceUtil.subBefore("abcdef", "d", false);
# 8. 字符序列填充
# 8.1 左右填充
// 左填充指定字符到指定长度
CharSequence padded = CharSequenceUtil.padLeft("123", 5, '0');
// 右填充指定字符到指定长度
CharSequence padded = CharSequenceUtil.padRight("123", 5, '0');
// 居中填充指定字符到指定长度
CharSequence padded = CharSequenceUtil.padCenter("123", 5, '0');
# 9. 其他常用功能
# 9.1 生成随机字符序列
// 生成指定长度的随机字符序列
CharSequence random = CharSequenceUtil.random(5);
// 生成指定长度的随机数字字符序列
CharSequence randomNumbers = CharSequenceUtil.randomNumbers(5);
# 9.2 重复字符序列
// 重复指定次数的字符序列
CharSequence repeated = CharSequenceUtil.repeat("abc", 3);
# 9.3 计算字符序列长度
// 计算字符序列长度(支持Unicode)
int length = CharSequenceUtil.length("你好,世界");
# 10. 适用场景
CharSequenceUtil适用于以下场景:
- 需要处理多种类型的字符序列时
- 需要编写通用的字符序列处理代码时
- 需要在不同字符序列类型之间转换时
- 需要对StringBuilder、StringBuffer等进行与String相同的操作时
- 希望代码更加通用,不依赖于具体的字符序列实现时
通过CharSequenceUtil,开发者可以编写更加通用的字符序列处理代码,提高代码的复用性和灵活性,同时享受到与StrUtil类似的便捷功能。