Guava库学习:学习使用Splitter类分隔字符串

    链接地址: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集合。

你可能感兴趣的:(guava,Spliter)