Guava学习笔记(四)

Guava学习笔记(四)

本部分学习Guava的String相关的操作

Joiner

你还在不停的append吗?Joiner提供了流式的操作

1
2
3
Joiner joiner = Joiner.on("; ").skipNulls();
//返回String: Harry; Ron; Hermione
return joiner.join("Harry", null, "Ron", "Hermione");

Joiner里面可以拼接一个迭代器的实例。

Splitter

Splitter支持复杂的控制用来切分字符串

-w750

上图展示的是不同的切分方法

-w564

同时提供了一组方法用来处理切分后的String

示例

1
2
3
4
5
6
Splitter.on(CharMatcher.anyOf("abcf"))
.trimResults(CharMatcher.is('_'))
.omitEmptyStrings()
.limit(3) //切分完前三个后停止切分
.split("abcdef a_cg")
.forEach(System.out::println);

CharMatcher

在前面切分时用到了CharMatcher,用来设定切分规则,CharMatcher里面定义了多个方法。希望后面能想起来用这个功能

Charsets

在使用指定编码读取String时,不要用下面这张方式指定

1
2
3
4
5
6
try {
bytes = string.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
// how can this possibly happen?
throw new AssertionError(e);
}

而是用

1
bytes = string.getBytes(Charsets.UTF_8);

CaseFormat

CaseFormat提供了对字符串进行大小写操作

-w340

1
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "CONSTANT_NAME")); // returns "constantName"

看起来挺好用的

总结

Guava提供的这几个功能还是挺实用的,尤其是字符串的拼接和切分

# guava

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×