Guava:Spiltter 拆分器

发布时间:2024年01月11日

简介

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]
    }

}

文章来源:https://blog.csdn.net/qq_63815371/article/details/135486314
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。