joiner主要用于对字符串的连接,也可用于对map中key value的连接

public class JoinerTest {

    private static final List<String> list1 = Arrays.asList
("google","guava","java","scala","kafka"); private static final List<String> list2 = Arrays.asList
("google","guava","java",null,"scala","kafka"); public static void main(String[] args) throws IOException { //1.用指定的字符连接
String join = Joiner.on("#").join(list1);
System.out.println("用 # 号连接的字符串是:"+join); //2.跳过连接中的null值
String joinNull = Joiner.on("#").skipNulls().join(list2);
System.out.println("用 # 号连接的字符串,跳过中间的null值:"+joinNull); //3.有null值存在时用指定值代替
String joinUseForNull = Joiner.on("#").useForNull("DEFAULT").join(list2);
System.out.println("用指定值代替集合中的null值:"+joinUseForNull); //4.把集合变成一个stringBuilder 或者stringBuffer
StringBuilder builder = Joiner.on("#").useForNull("DEFAULT").appendTo(new StringBuilder(), list2);
StringBuffer buffer = Joiner.on("#").useForNull("DEFAULT").appendTo(new StringBuffer(), list2);
System.out.println("拼接成的 builder是:"+builder);
System.out.println("拼接成的buffer是:"+buffer); //5.对于map中key value的分隔
Map<String, String> map = new HashMap<String, String>();
map.put("hello", "java");
map.put("scala", "guava");
String joinMap = Joiner.on("#").withKeyValueSeparator("=").join(map);
System.out.println("key value 的分隔符:"+joinMap); }
}
//打印结果

用 # 号连接的字符串,跳过中间的null值:google#guava#java#scala#kafka
用指定值代替集合中的null值:google#guava#java#DEFAULT#scala#kafka
拼接成的 builder是:google#guava#java#DEFAULT#scala#kafka
拼接成的buffer是:google#guava#java#DEFAULT#scala#kafka
key value 的分隔符:scala=guava#hello=java


Guava 工具类之joiner的使用的更多相关文章

  1. 强大的 Guava 工具类

    Java 开发的同学应该都使用或者听说过 Google 提供的 Guava 工具包.日常使用最多的肯定是集合相关的工具类,还有 Guava cache,除了这些之外 Guava 还提供了很多有用的功能 ...

  2. 工具篇:介绍几个好用的guava工具类

    前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...

  3. Guava工具类

    原文链接:http://blog.csdn.net/mnmlist/article/details/53425865 Objects类 Objects类有几个比较不错的方法,toString.hash ...

  4. Google guava工具类的介绍和使用

    概述 工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率.谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来.所以就诞生了guava.. 高效设计良好的API ...

  5. Google的Guava工具类splitter和apache stringutil对比 编辑

    一直用的是apache的stringutil工具类,其实google的工具类项目 guava中居然也有字符串的分隔类splitter的,在 http://code.google.com/p/guava ...

  6. Guava工具类学习

    目录 一.介绍 二.Optional类 1.定义 2.java8自带Optional 3.使用 三.Preconditions类 1.定义 2.使用 四.Ordering类 1.定义 2.使用 五.R ...

  7. Guava 工具类之Cache的使用

    一.guava cache 介绍 1.介绍 guava cache是Google guava中提供的一款轻量级的本地缓存组件,其特点是简单.轻便.完善.扩展性强,内存管理机制也相对完善. 2.使用缓存 ...

  8. Guava 工具类之 Splitter的使用

    Splitter可以对字符串进行分割,在分割时的方式有2种, 1.按字符/字符串分割 2.按正则进行分割 Splitter在分割完成时可以转换成list和map 一.按字符进行分割 //1.用指定字符 ...

  9. Guava 工具类之Strings 的使用

    public class StringTest { public static void main(String[] args) { //判断是null还是空字符串 boolean b1 = Stri ...

随机推荐

  1. Ubuntu: error: snap “phpstorm” has “install-snap” change in progress

    Ubuntu: error: snap “phpstorm” has “install-snap” change in progress 投稿日 : 2019-06-10 | カテゴリー : linu ...

  2. Druid连接池 属性说明

    1.1 maxActive 连接池支持的最大连接数.一般取值20就可以了,一般把maxActive设置成可能的并发量就行了设 0 为没有限制. 1.2 maxIdle 连接池中最多可空闲maxIdle ...

  3. web开发下载文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用.此控件PC全平台支持包括mac,linux系统的文件上传,文章末尾将附上控件下载与教程链接 ...

  4. CF796C Bank Hacking 细节

    思路十分简单,答案只有 3 种可能,但是有一些细节需要额外注意一下. code: #include <bits/stdc++.h> #define N 300002 #define set ...

  5. MySQL备忘点(下)

    联结表 创建联结 FROM 表1,表2 与内连接作用相同类似:如果失去WHERE子句,会出现笛卡尔积现象 内联结 INNER JOIN 高级联结 自联结 例子:SELECT 字段b FROM 表 WH ...

  6. 代码审计-Typecho反序列化getshell

    0x01 漏洞代码 install.php: <?php $config = unserialize(base64_decode(Typecho_Cookie::get('__typecho_c ...

  7. 域渗透-企业应用SAML签名攻击

    在项目中遇到SAML企业应用      想留个后门时候一脸懵 随便的整理记录 记录项目中SAML渗透的知识点. 0x01 前置知识  SAML单点登陆 SAML(Security Assertion ...

  8. csp-s模拟106

    这场其实心态十分爆炸,首先一下午改上次破T3卡常一下午没过,心情十分暴躁.上来开题不顺利,T1想了一个小时没动.于是跳到T2,看T2的80pts貌似可拿就先打了.T3只会判10分,又想打个$2^{2N ...

  9. js闭包小实验

    js闭包小实验 一.总结 一句话总结: 闭包中引用闭包外的变量会使他们常驻内存 function foo() { var i=0; return function () { console.log(i ...

  10. vue2.0中 怎么引用less?

    vue2.0中  怎么引用less? 第一步: 安装less依赖, npm install less less-loader --save 第二步: 修改webpack.config.js文件,配置l ...