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();
}
}

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

【java】【guava】Google Guava的splitter用法的更多相关文章

  1. 使用 Google Guava 美化你的 Java 代码

    文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMP ...

  2. Google的java工具类Guava

    前言 google开发java项目肯定也不想重复造轮子,所以肯定也有工具类,就是它了:Guava 我将举例几个实际的例子,发挥这个工具类好用的功能.更多的方法和功能,还有内部的实现可以直接参考http ...

  3. Google Java编程库Guava介绍

    本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(C ...

  4. String split方法与Guava Splitter用法区别

    String split方法与Guava Splitter用法区别 今天同事写了一段使用String split方法的代码,如下所示,同事期望得到的是字符"1",但是没想到却得到空 ...

  5. 使用 Google Guava 美化你的 Java 代码:1~4 【转】

    文章转载自:http://my.oschina.net/leejun2005/blog/172328 1.使用Google Collections,Guava,static imports编写漂亮代码 ...

  6. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

  7. Java内存缓存-通过Google Guava创建缓存

    谷歌Guava缓存 Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中.实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问. Guava ...

  8. java开发人员,最应该学习和熟练使用的工具类。google guava.(谷歌 瓜娃)

    学习参考文章: http://blog.csdn.net/wisgood/article/details/13297535 http://ifeve.com/google-guava/ http:// ...

  9. 【转载】使用 Google Guava 美化你的 Java 代码

    转载地址: https://blog.csdn.net/wisgood/article/details/13297535 原文地址:https://my.oschina.net/leejun2005/ ...

随机推荐

  1. C#函数的参数传递2(ref\out)

    using System; namespace class1 { class program { static void Main(string[] args) { Console.Write(&qu ...

  2. linux shell中$0,$?,$!等的特殊用法

    记录下linux shell下的特殊用法及参数的说明 变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值 ...

  3. DesignPattern系列__09设计模式概述

    设计模式介绍 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案, 设计模(Design pattern)代表了最佳的实践.这些解决方案是众多软 ...

  4. CSS3 动画--- CSS3 animation

    动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果. 语法格式: animation:动画名称 花费时间 运动曲线 何时开始 播放次数 是否反方 ...

  5. C# vs2017创建Com组件,并注册

    1.创建一个普通类库dll项目,如:MyCom. 2.导出接口,添加Guid,Guid为全局唯一标识,可以用VS2017自带工具获取.获取Guid的方法,如图: (1)打开自带Guid工具. (2)首 ...

  6. QML::Rectangle组件

    QML的Rectangle组件,描绘一个矩形,一个可视化的对象. 外加设置属性来达到我们想要的效果.常用的有矩形的颜色,边框颜色,圆角等设置. Rectangle{ x:10//这里的坐标是相对于它的 ...

  7. 2019年上半年收集到的人工智能GAN干货文章

    2019年上半年收集到的人工智能GAN干货文章 GAN简介及其常见应用 训练GAN,你应该知道的二三事 了解生成对抗网络(GAN) CosmoGAN:训练GAN,让AI寻找宇宙中的暗物质 关于GAN的 ...

  8. Socket简单实现ssh笔记

    Scoket概念: socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递. 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上 ...

  9. HiGV ui代码流程

    在海思PDT_Init下有一个这样的函数HI_PDT_UI_Init(): 1. HI_PDT_UI_Init()函数: /*public, it should be called by main() ...

  10. mean shift聚类算法的MATLAB程序

    mean shift聚类算法的MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. mean shift 简介 mean shift, 写的 ...