【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();
}
}
效果可以自行 粘贴 ,单元测试直接运行即可。
【java】【guava】Google Guava的splitter用法的更多相关文章
- 使用 Google Guava 美化你的 Java 代码
文章转载自:http://my.oschina.net/leejun2005/blog/172328 目录:[ - ] 1-使用 GOOGLE COLLECTIONS,GUAVA,STATIC IMP ...
- Google的java工具类Guava
前言 google开发java项目肯定也不想重复造轮子,所以肯定也有工具类,就是它了:Guava 我将举例几个实际的例子,发挥这个工具类好用的功能.更多的方法和功能,还有内部的实现可以直接参考http ...
- Google Java编程库Guava介绍
本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(C ...
- String split方法与Guava Splitter用法区别
String split方法与Guava Splitter用法区别 今天同事写了一段使用String split方法的代码,如下所示,同事期望得到的是字符"1",但是没想到却得到空 ...
- 使用 Google Guava 美化你的 Java 代码:1~4 【转】
文章转载自:http://my.oschina.net/leejun2005/blog/172328 1.使用Google Collections,Guava,static imports编写漂亮代码 ...
- [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具
原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...
- Java内存缓存-通过Google Guava创建缓存
谷歌Guava缓存 Guava介绍 Guava是Google guava中的一个内存缓存模块,用于将数据缓存到JVM内存中.实际项目开发中经常将一些公共或者常用的数据缓存起来方便快速访问. Guava ...
- java开发人员,最应该学习和熟练使用的工具类。google guava.(谷歌 瓜娃)
学习参考文章: http://blog.csdn.net/wisgood/article/details/13297535 http://ifeve.com/google-guava/ http:// ...
- 【转载】使用 Google Guava 美化你的 Java 代码
转载地址: https://blog.csdn.net/wisgood/article/details/13297535 原文地址:https://my.oschina.net/leejun2005/ ...
随机推荐
- MySQL 中的字符串类型
字符类型包括: CHAR VARCHAR BINARY VARBINARY BLOB TEXT ENUM SET CHAR 与 VARCHAR CHAR(m) m 取值范围 0-255.列宽固定,存储 ...
- MVC过滤器:自定义异常过滤器
一.异常过滤器 异常筛选器用于实现IExceptionFilter接口,并在ASP.NET MVC管道执行期间引发了未处理的异常时执行.异常筛选器可用于执行诸如日志记录或显示错误页之类的任务.Hand ...
- MySQL的5大引擎及优劣之分
MySQL提供了多个不同的存储引擎,其中5大引擎有:innodb,myisam,memory,merge,csv. 其中优点有:灾难恢复性好.支持事务.使用行级锁.支持外键关联.支持热备份 缺点如下: ...
- h5本地存储登录页面实现记住密码功能
<!DOCTYPE html> <html> <head> <title></title> </head> <style ...
- Google在情报搜集中的基础技巧
Google在情报搜集中的基础技巧 作者:王宇阳 时间:2019-06-06 作者笔记 Google Hacking 是指使用特定的高级的google搜索语法,收集渗透测试目标的信息,查找目标的配 ...
- LCD RGB 控制技术 时钟篇(下)【转】
上一篇博文,我们介绍了LCD RGB控制模式的典型时钟.那么这一片我们要详细的去讨论剩下的细节部分. 我们先回顾一下之前的典型时序图 在这个典型的时序图里面,除了上篇博文讲述的HSYNC VSYNC ...
- emacs 帮助相关命令
emacs 帮助相关命令 如下表: No. 键盘操作 键盘操作对应的函数 回答的问题 01 ctrl-h c describe-key-briefly 这个按键组合将运行哪个函数 02 ctrl-h ...
- [PHP] vscode配置SFTP扩展同步文件
在我们的项目开发过程中,经常有一种模式,有一台linux的开发机作为我们的测试机器,上面安装了ftp服务.我们在windows系统的本地机器使用IDE编写代码,自动或者保存时同步上传到测试机下,这样就 ...
- 3. Vue - 指令系统
一.vue指令 (1) v-if // 条件判断 如果条件成立就在页面上生成一个标签并显示出来 (2) v-show //DOM中都存在只是显示与否 (3) v-for //注意 v-bind:key ...
- 201871010111-刘佳华《面向对象程序设计(java)》第七周学习总结
201871010111-刘佳华<面向对象程序设计(java)>第七周学习总结 实验时间 2019-10-11 1.实验目的与要求 1) 掌握四种访问权限修饰符的使用特点: (1)进一步理 ...