Guava学习笔记-Joiner
Joiner
文章目录
- Joiner
- 1、背景
- 2、说明
- 依赖
- 3、示例
- 3.1 普通连接
- 3.2 跳过空元素
- 3.3 默认值替换空元素
- 3.4 结果放入stringbuilder
- 3.5 写入文件
- 3.6 使用stream
- 3.7 使用stream并替换默认值
- 3.8 连接map
- 3.9 连接map输出到stringbuilder
- 4、延伸
- 参考链接
1、背景
需要连接字符串集合中的所有元素,形成一个长字符串。
2、说明
依赖
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>28.2-jre</version>
</dependency>
3、示例
3.1 普通连接
private final List<String> stringList = Arrays.asList("Google", "Guava", "Java", "Test", "Kafka");
private final List<String> stringListWithNull = Arrays.asList("Google", "Guava", "Java", "Test", null, "Kafka"
);@Test
public void test1() {String result = Joiner.on("-").join(stringList);System.out.println(result);
}
输出
Google-Guava-Java-Test-Kafka
3.2 跳过空元素
String result = Joiner.on("-").skipNulls().join(stringListWithNull);
说明:若连接的集合包含空元素,而Joiner未指定跳过空元素,则执行会抛出异常
3.3 默认值替换空元素
String result = Joiner.on("-").useForNull("Default").join(stringListWithNull);System.out.println(result);
输出:
Google-Guava-Java-Test-Default-Kafka
3.4 结果放入stringbuilder
StringBuilder builder = new StringBuilder("src-");
StringBuilder result = Joiner.on("-").useForNull("Default").appendTo(builder, stringListWithNull);
System.out.println(builder);
System.out.println(result);
输出:
src-Google-Guava-Java-Test-Default-Kafka
src-Google-Guava-Java-Test-Default-Kafka
3.5 写入文件
try {FileWriter fileWriter = new FileWriter(new File("./joiner.txt"));Joiner.on("-").useForNull("Default").appendTo(fileWriter, stringListWithNull);fileWriter.flush();
} catch (IOException e) {e.printStackTrace();
}
3.6 使用stream
String result = stringListWithNull.stream().filter(item -> item != null && !item.isEmpty()).collect(Collectors.joining("-"));
3.7 使用stream并替换默认值
String result = stringListWithNull.stream().filter(item -> item != null && !item.isEmpty()).collect(Collectors.joining("-"));
3.8 连接map
Map<String, String> stringMap = of("Google", "Guava", "Java", "Kafka");
String result = Joiner.on(",").withKeyValueSeparator("-").join(stringMap);
System.out.println(result);
输出:
Google-Guava,Java-Kafka
3.9 连接map输出到stringbuilder
Map<String, String> stringMap = of("Google", "Guava", "Java", "Kafka");
StringBuilder builder = new StringBuilder("src:");
Joiner.on(",").withKeyValueSeparator("-").appendTo(builder,stringMap);
System.out.println(builder);
输出
src:Google-Guava,Java-Kafka
4、延伸
参考链接
Joiner
Guava学习笔记-Joiner相关推荐
- Guava学习笔记:简化异常处理的Throwables类
Guava学习笔记:简化异常处理的Throwables类 参考文章: (1)Guava学习笔记:简化异常处理的Throwables类 (2)https://www.cnblogs.com/peida/ ...
- Guava学习笔记(转)
Guava(瓜娃)学习笔记 Guava工程包含了若干被google的java项目广泛依赖的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitiv ...
- Google Guava学习笔记——基础工具类Joiner的使用
Guava 中有一些基础的工具类,如下所列: 1,Joiner 类:根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 2,Spli ...
- Guava学习之Joiner
本文是对 Guava 中 Joiner 的学习介绍.欢迎加入学习项目: LearningGuava. 使用示例 以下参考:官方文档. 开发过程中,用分隔符连接字符串序列可能是一个比较繁琐的过程,但本不 ...
- Guava学习笔记:缘起
缘起 为什么要使用Guava呢?因为在几年前就是用过Guava的部分功能,当时有一个项目需要通过缓存来提升部分功能的性能,对本地应用缓存和分布式应用缓存进行了相关的调研,在调研本地应用缓存的时候,第一 ...
- Guava学习笔记:EventBus(转)
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和 ...
- Guava学习笔记:Google Guava 类库简介
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...
- Guava学习笔记 6. 字符串处理[Strings]
非常有用的字符串工具,包括分割.连接.填充等操作 本文简单介绍了一下Guava的一些字符串工具 本文参考自: http://ifeve.com/google-guava-strings/ 并添加了一些 ...
- Guava学习笔记:Preconditions优雅的检验参数
在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去.对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处 ...
- Guava学习笔记:Ordering犀利的比较器
2019独角兽企业重金招聘Python工程师标准>>> Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比 ...
最新文章
- python安装文件乱码_python输出到文件乱码如何解决
- TweenMax动画库学习(三)
- DataGridView新特色、常用操作
- Windows 如何通过命令启动和关闭 Tomcat
- 连续四年百度Android岗必问面试题!Android校招面试指南
- 开发大型高负载类网站应用的几个要点
- 10行代码搞定移动web端自定义tap事件
- ModBus通信协议的【Modbus RTU 协议使用汇总】
- 图的连通度问题的求法(转)
- sqlserver备份还原丢失dbo_sqlserver数据库的备份与恢复sql实现
- 计算机机房维护与管理,计算机机房的管理与维护.doc
- ES中------拼音搜索
- 批量爬取链家房源信息
- 纵横网络靶场社区 工控
- Micheal Jackson 离开了我们
- 未来两周目标计划---C++ and Disassembly(不积跬步无以至千里,不积小流无以成江海)
- 聚会活跃气氛小程序-喝酒神器
- CToolBar的使用总结(转)
- 联想电脑计算机无法正常启动怎么办,电脑蓝屏无法启动怎么办
- 根据城市查找编号,根据编号查找城市
热门文章
- 小米手机的专用计算机连接软件,小米手机怎么连接电脑?这些方法值得收藏!...
- 大数据平台监控界面和报表
- 计算机各种办公软件都很卡,电脑中打开office2016办公软件很卡的解决方法
- ceph 源代码分析 — peering 过程
- shenyu自定义插件
- phpexcel 导入数据 Invalid cell coordinate
- mysql stmt fetch,mysql_stmt_fetch 奇怪的问题..
- win7打开xp共享的计算机,高手教你如何让XP与Win7系统局域网共享
- 带你走进springboot
- 文件上传2-搭建uploads靶场