Guava:Spiltter 拆分器

11 篇文章 0 订阅
本文介绍了Google库中的Splitter类,展示了如何使用各种方法进行字符串拆分,包括按固定长度、字符、正则表达式、Map键值对等不同方式,并提供示例演示其功能和用法。
摘要由CSDN通过智能技术生成

简介

Splitter 提供了各种方法来处理分割操作,如集合,字符串,对象等。

类方法说明

方法名称方法说明
fixedLength(int length) 初始化拆分器,拆分器会将字符串分割为元素长度固定的List,最后一个元素长度不足可以直接返回.
limit(int limit) 限制拆分出的字符串数量
omitEmptyStrings() 从结果中自动忽略空字符串.
on(char separator) 初始化拆分器,参数为分隔符.
on(CharMatcher separatorMatcher) 初始化拆分器,参数为分隔符.
on(Pattern separatorPattern) 初始化拆分器,参数为分隔符.
on(String separator) 初始化拆分器,参数为分隔符.
onPattern(String separatorPattern) 返回一个拆分器,它将与给定模式(正则表达式)匹配的任何子序列视为分隔符.
split(CharSequence sequence) 对Stirng通过拆分器进行拆分,返回一个Iterable.
splitToList(CharSequence sequence) 将序列拆分为字符串组件并将其作为不可变列表返回.
trimResults() 修饰拆分器,拆分器做拆分操作时,会对拆分的元素做trim操作(删除元素头和尾的空格),相当于 trimResults(CharMatcher.whitespace()).
trimResults(CharMatcher trimmer) 修饰拆分器,拆分器做拆分操作时,会删除元素头尾charMatcher匹配到的字符.
withKeyValueSeparator(char separator) 初始化一个Map拆分器,拆分器对String拆分时,separator为key和value之间的分隔符.
withKeyValueSeparator(Splitter keyValueSplitter) 初始化一个Map拆分器,拆分器对String拆分时,separator为key和value之间的分隔符.
withKeyValueSeparator(String separator) 初始化一个Map拆分器,拆分器对String拆分时,separator为key和value之间的分隔符.

使用Demo

import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import org.junit.Test;

import java.util.List;

/**
 * 字符串拆分
 */
public class SplitterTest{

    @Test
    public void splitter() {
        //1.字符串转集合
        //1.1按指定字符分割
        Splitter on = Splitter.on("!");
        List<String> list = on.splitToList("hello!world");
        System.out.println(list);   // [hello, world]

        //过滤空
        List<String> list2 = Splitter.on("!").omitEmptyStrings().splitToList("hello ! world!!!!!!");
        System.out.println(list2);           // [hello ,  world]

        //分割限制
        List<String> list4 = Splitter.on("#").limit(3).splitToList("hello#world#java#google#scala");
        System.out.println(list4);//[hello, world, java#google#scala]

        //1.2按长度分割
        List<String> list5 = Splitter.fixedLength(3).splitToList("aaabbbcccddde");
        System.out.println(list5);//[aaa, bbb, ccc, ddd, e]

        //1.3正则匹配
        List<String> list6 = Splitter.onPattern("[.|,]").splitToList("apple.banana,,orange,,.");
        System.out.println(list6);//[apple, banana, , orange, , , ]

        //1.4去除指定字符
        //过滤空
        List<String> list3 = Splitter.on("!").trimResults().splitToList("hello ! world!  !!!!!");
        System.out.println(list3);           // [hello ,  world]
        //过滤空指定字符
        String str1 = "~?~this, is~~ , , random , text,";
        List<String> result = Splitter.on(',')
                .trimResults(CharMatcher.anyOf("~? "))//表示去除~,?," "
                .splitToList(str1);
        System.out.println(result);     // [this, is, random, text]
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值