• 【java】【guava】Google Guava的splitter用法


    Google Guava的splitter,分割字符串的用法

    package com.sxd.swapping.guava;
    
    import com.google.common.base.CharMatcher;
    import com.google.common.base.Splitter;
    import org.assertj.core.util.Lists;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.ArrayList;
    
    /**
     * @Author: SXD
     * @Description:  Google Guava的splitter,分割字符串的用法
     * @Date: create in 2019/11/12 9:52
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class GuavaSplitterTest {
    
        String str = "a,,b,    c,,,,2312312342,dasdaaa ,德玛西亚,    艾欧尼亚,寒冰之地   ,abCDefGHdasIJklmnoPpQqZz,ooAAdas";
    
        /**
         * 按 指定字符 拆分源字符串
         */
        @Test
        public void splitTest(){
            Iterable<String> split = Splitter.on(",").split(str);
            printResult(split);
        }
    
        /**
         * 按 指定字符  拆分源字符串
         * 并去除 空值
         */
        @Test
        public void omitEmptyStringsTest(){
            Iterable<String> split = Splitter.on(",").omitEmptyStrings().split(str);
            printResult(split);
        }
    
    
        /**
         * 按 指定字符  拆分源字符串
         * 并去除空值
         * 并去除额外空格
         */
        @Test
        public void trimResultsTest(){
            Iterable<String> split = Splitter.on(",").trimResults().omitEmptyStrings().split(str);
            printResult(split);
        }
    
    
        /**
         * 按 指定字符  拆分源字符串
         * 并去除空值
         * 并 按照指定类型 去除每一个分隔元素内的 指定类型
         */
        @Test
        public void trimResultsWithCharTest(){
            //去除 元素中包含的数字
            Iterable<String> split1 = Splitter.on(",").trimResults(CharMatcher.digit()).omitEmptyStrings().split(str);
            printResult(split1);
    
            //去除 元素中的 空格
            Iterable<String> split2 = Splitter.on(",").trimResults(CharMatcher.whitespace()).omitEmptyStrings().split(str);
            printResult(split2);
    
            //去除 元素中的 空格
            Iterable<String> split3 = Splitter.on(",").trimResults(CharMatcher.breakingWhitespace()).omitEmptyStrings().split(str);
            printResult(split3);
    
            //去除 元素中的 包含在ASCII中的所有元素 [留下的:例如中文]
            Iterable<String> split4 = Splitter.on(",").trimResults(CharMatcher.ascii()).omitEmptyStrings().split(str);
            printResult(split4);
    
            //去除 元素中的 任何元素
            Iterable<String> split5 = Splitter.on(",").trimResults(CharMatcher.any()).omitEmptyStrings().split(str);
            printResult(split5);
    
            //不去除 元素中的 任何元素
            Iterable<String> split6 = Splitter.on(",").trimResults(CharMatcher.none()).omitEmptyStrings().split(str);
            printResult(split6);
    
            //去除 元素左右两侧的在a-z范围内的元素
            Iterable<String> split9 = Splitter.on(",").trimResults(CharMatcher.inRange('a','z')).omitEmptyStrings().split(str);
            printResult(split9);
    
            //去除 元素左右两侧中不包含a  的元素
            Iterable<String> split10 = Splitter.on(",").trimResults(CharMatcher.isNot('a')).omitEmptyStrings().split(str);
            printResult(split10);
    
        }
    
    
    
    
        /**
         * 将 Iterable<String> 转化为 List<String>
         *
         * 最终打印结果集
         * @param split Iterable<String>
         */
        private void printResult(Iterable<String> split){
            ArrayList<String> result = Lists.newArrayList(split);
            System.out.println("结果集大小:"+result.size());
            System.out.println(">>>>输入结果集:");
            for (String s : result) {
                System.out.println(s);
            }
            System.out.println();
        }
    }

    效果可以自行 粘贴 ,单元测试直接运行即可。

  • 相关阅读:
    详解TCP三次握手
    Linux(Ubunt)使用日记------常用软件汇总(不定时更新)
    Linux(Ubuntu)使用日记------markdown文件与pdf,doc,docx文件的相互转化(pandoc使用)
    白板编程浅谈——Why, What, How
    深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
    我的算法学习之路
    redux的hook使用
    redux基础(添加中间件与异步)
    typescript书写规范
    用js手撕七种排序算法!!内附运行速度测试函数
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/11840742.html
Copyright © 2020-2023  润新知