使用Splitter
Splitter与Joiner恰恰相反,将一个字符串已一个分隔符分隔,返回一字符串数组。下面是使用JDK的String类中的split方法示例:
输出结果:
从上面可以看出,中间有些空值并不是我们想要的。使用Google Guava就能避免上述的情况发生:
Splitter.on('|').split("foo|bar|baz").trimResults();
Splitter还可以使用正则表达式:
Splitter splitter = Splitter.on("\\d+");
跟Joiner类一样,Splitter对象一旦构建,将会是不变的,所以要避免以下的代码:
Splitter splitter = Splitter.on('|');
//Next call returns a new instance, does not modify the original!
splitter.trimResults();
//Result would still contain empty elements
Iterable<String> parts = splitter.split("1|2|3|||");
Splitter也能处理Map:
//MapSplitter is defined as an inner class of Splitter
Splitter.MapSplitter mapSplitter = Splitter.on("#").withKeyValueSeparator("=");
Splitter类的Map测试:
输出结果为true。