Splitter的作用和Joiner的作用相反,是用分隔符把字符串分割为一个list。
简单实例
分割字符串,常规做法如下:
String[] arr=",a,,b,".split(","); //结果是:[, a, , b]
可以看出最后一个空字符串被忽略了,如果想过滤掉所有的空字符串还要写多余的代码。
guava的Splitter提供了很多灵活的操作。
Splitter.on(',').split(",a,,b,"); //输出 [, a, , b, ]
常用操作
前置代码:a的前面、b的后面有空格
String str="| a|b |";
Splitter sp = Splitter.on("|");
操作 | 描述 | 返回结果(、用来分割元素) |
---|---|---|
sp.split(str) | 分割字符串 | ""、" a"、"b "、"" |
sp.trimResults().split(str) | 去掉每个元素的空白 | ""、"a"、"b"、"" |
sp.omitEmptyStrings().split(str) | 去掉空白的元素 | " a"、"b " |
sp.limit(3).split(str) | 分割够3个后,就不再分割 | ""、" a"、"b |" |
MapSplitter
可以把字符串分割为map,和Joiner的MapJoiner
作用相反
Splitter.MapSplitter mapSplitter = Splitter.on(",").withKeyValueSeparator("=");
Map<String, String> split = mapSplitter.split(" b=22,c=33,a=11");
System.out.println(split); //输出 { b=22, c=33, a=11}
参照:
1、《getting started with google guava》