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集合。

转载于:https://my.oschina.net/realfighter/blog/349781

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值