链接地址:http://www.xx566.com/detail/122.html
上一篇:Guava的由来与Joiner类的学习使用中,我们学习了Joiner类用来处理集合获取相应的字符串,在Guava中,与之相反,提供了Splitter类用来处理分割字符串,来获取相应的数据集合,接下来,我们就来简单的了解一下。
首先,我们依然通过下面简单的示例代码,来开始学习Splitter,代码如下:
package guava;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import com.google.common.base.Splitter;
/**
* Splitter:作用与Joiner相反,用于切割字符串,返回集合
*/
public class SplitterTest {
private static String separator = "|";// 分隔符
private static String separator2 = "=";// 分隔符(mapSplitter)
private static String string = "i hate u=u hate me |i like u=u like me |||i love u=u love me";// 测试用字符串
@Test
public void testSplitter() {
// omitEmptyStrings方法用于忽略分割后产生的空值
Iterable strings = Splitter.on(separator).omitEmptyStrings()
.split(string);
// [i hate u=u hate me , i like u=u like me , i love u=u love me]
System.out.println(strings);
// trimResults方法用于处理分割后每一项中的空白符
Iterable strings2 = Splitter.on(separator)
.trimResults().split(string);
// [i hate u=u hate me, i like u=u like me, , , i love u=u love me]
System.out.println(strings2);
}
@Test
public void testMapSplitter() {
Splitter.MapSplitter mapSplitter = Splitter.on(separator)
.omitEmptyStrings().withKeyValueSeparator(separator2);
Map<String, String> map = mapSplitter.split(string);
Set keySet = map.keySet();
// [i hate u, i like u, i love u]
System.out.println(keySet);
}
}
我们看到,Splitter是通过Splitter.on(分隔符).split(字符串)来处理字符串,与Joiner类似,通过静态on()方法,我 们构建了一个Splitter对象,其中提供了两种常用的方法,分别是omitEmptyStrings()和trimResults(),这两个方法的 调用都会返回一个新的Splitter对象实例。
omitEmptyStrings()用于忽略字符串分割后产生的空值元素,trimResults()用于去除字符串分割后子元素中的空白符。
与Joiner类似,Splitter也提供了一个内部类MapSplitter来处理字符串,返回map集合,调用方法为 withKeyValueSeparator(separator),在静态on()方法之后调用,在分割后的子项中根据指定的separator再次分 割成key-value键值对,返回的结果为map集合。