Guava--Splitter使用方式

1. Splitter<功能:把字符串分割为集合>


public class SplitterTest {

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     */
    @Test
    public void test_Splitter_OnSplitter() {
        List<String> list = Splitter.on("|").splitToList("Hello|Java");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(2));
        assertThat(list.get(0), equalTo("Hello"));
        assertThat(list.get(1), equalTo("Java"));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. 若字符串分割之后, 含有空字符串, 使用omitEmptyStrings过滤掉.
     */
    @Test
    public void test_Splitter_Omit() {
        List<String> list = Splitter.on("|").splitToList("Hello|Java|||");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(5));

        list = Splitter.on("|").omitEmptyStrings().splitToList("Hello|Java|||");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(2));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. 若字符串分割之后, 含有空字符串, 使用omitEmptyStrings过滤掉.
     * 3. 若subString左右还有空格时, 可以使用trimResults去除.
     */
    @Test
    public void test_Splitter_Trim_Omit() {
        List<String> list = Splitter.on("|").splitToList("Hello | Java |||");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(5));
        assertThat(list.get(0), equalTo("Hello "));
        assertThat(list.get(1), equalTo(" Java "));

        list = Splitter.on("|").trimResults()
                .omitEmptyStrings()
                .splitToList("Hello|Java|||");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(2));
        assertThat(list.get(0), equalTo("Hello"));
        assertThat(list.get(1), equalTo("Java"));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. 固定长度切割字符串:fixedLength.
     */
    @Test
    public void test_Splitter_FixedLength() {
        List<String> list = Splitter.fixedLength(4).splitToList("aaaabbbbcccc");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(3));
        assertThat(list.get(0), equalTo("aaaa"));
        assertThat(list.get(2), equalTo("cccc"));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. limit: 只根据分隔符, 分割几次字符串.
     */
    @Test
    public void test_Splitter_Limit() {
        List<String> list = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(3));
        assertThat(list.get(0), equalTo("Java"));
        assertThat(list.get(2), equalTo("C#Shell"));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. 使用正则表达式, 作为分隔符.
     */
    @Test
    public void test_Splitter_OnPattern() {
        List<String> list = Splitter.onPattern("\\#").limit(3).splitToList("Java#C++#C#Shell");
        // List<String> list = Splitter.on(Pattern.compile("#")).limit(3).splitToList("Java#C++#C#Shell");
        assertThat(list, notNullValue());
        assertThat(list.size(), equalTo(3));
        assertThat(list.get(0), equalTo("Java"));
        assertThat(list.get(2), equalTo("C#Shell"));
    }

    /**
     * 1. 把(字符串)分割为(集合). <Result>
     * 2. 字符串转换为Map.
     * 3. withKeyValueSeparator: 指定key和value通过什么进行分割.
     */
    @Test
    public void test_Splitter_ToMap() {
        Map<String, String> map = Splitter.on("#").withKeyValueSeparator("=").split("Java=1#C++=2#C=3#Shell=4");
        assertThat(map, notNullValue());
        assertThat(map.size(), equalTo(4));
        assertThat(map.get("Java"), equalTo("1"));
        assertThat(map.get("C"), equalTo("3"));
    }
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值