前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

Guava字符串处理

Guava 提供了强大的字符串处理工具类,主要包括Joiner、Splitter、CharMatcher、CaseFormat和Strings等,大大简化字符串操作,提高代码的可读性和效率。

Joiner

将多个字符串或集合元素连接成一个字符串,支持自定义分隔符,并可处理null值。

常用方法:

o on(String delimiter):设置分隔符。

o skipNulls():跳过null值。

o useForNull(String replacement):用指定字符串替换null值。

o withKeyValueSeparator(String separator):用于拼接Map的键值对。

示例:

List<String> list = Arrays.asList("a", null, "b", "c");
String result = Joiner.on(", ").skipNulls().join(list); // 输出: a, b, c
System.out.println(result);
Map<String, String> map = ImmutableMap.of("a", "1", "b", "2");
String mapResult = Joiner.on(";").withKeyValueSeparator("=").join(map); // 输出: a=1;b=2
System.out.println(mapResult);

Splitter

将字符串按指定分隔符拆分成多个部分,支持过滤空字符串、修剪空白字符等。

常用方法:

o on(String delimiter):设置分隔符。

o omitEmptyStrings():忽略空字符串。

o trimResults():移除结果字符串的前导和尾部空白字符。

o limit(int maxSplits):限制拆分出的字符串数量。

o withKeyValueSeparator(String separator):将字符串拆分为Map。

示例:

String str = " a, , b , c ";
Iterable<String> parts = Splitter.on(",")
        .trimResults()
        .omitEmptyStrings()
        .split(str); // 输出: a, b, c
System.out.println(parts);


String kvStr = "a=1;b=2";
Map<String, String> kvMap = Splitter.on(";")
        .withKeyValueSeparator("=")
        .split(kvStr); // 输出: {a=1, b=2}
System.out.println(kvMap);

CharMatcher

字符匹配,支持修剪、折叠、移除、保留等操作。

常用方法:

o is(char c):匹配指定字符。

o inRange(char start, char end):匹配指定范围内的字符。

o whitespace():匹配空白字符。

o digit():匹配数字字符。

o trimFrom(String str):从字符串两端移除匹配的字符。

o removeFrom(String str):移除字符串中所有匹配的字符。

示例:

String trimmed = CharMatcher.whitespace().trimFrom(" abc "); // 输出: abc
System.out.println(trimmed);

CaseFormat

在不同命名风格(如驼峰命名、下划线命名等)之间转换。

常用方法:

o to(CaseFormat format, String str):将字符串转换为指定格式。

示例:

String lowerCamel = "lowerCamel";
String upperUnderscore = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, lowerCamel); // 输出: LOWER_CAMEL
System.out.println(upperUnderscore);

Strings

提供了一些常见的字符串操作方法,如判空、填充、重复等。

常用方法:

o isNullOrEmpty(String str):判断字符串是否为null或空。

o nullToEmpty(String str):将null转换为空字符串。

o padStart(String str, int minLength, char padChar):在字符串开头填充字符。

o repeat(String str, int count):重复字符串。

示例:

boolean isEmpty = Strings.isNullOrEmpty(""); // 输出: true
String padded = Strings.padStart("99", 5, '0'); // 输出: 00099
String repeated = Strings.repeat("ab", 3); // 输出: ababab
System.out.println(isEmpty);
System.out.println(padded);
System.out.println(repeated);

小结

Guava 的字符串处理工具类提供了比 Java 标准库更丰富和灵活的 API,能够显著简化字符串操作。应用场景如下:

o Joiner:适合拼接字符串或集合,尤其是需要处理null值或拼接Map的场景。

o Splitter:适合拆分字符串,尤其是需要过滤空字符串或处理键值对的场景。

o CharMatcher:适合字符级别的操作,如移除数字、修剪空白字符等。

o CaseFormat:适合命名风格的转换,如将驼峰命名转换为下划线命名。

o Strings:适合常见的字符串操作,如判空、填充、重复等。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言