在现在项目中经常看到 这两个类的使用,开始时候不明白具体是做的什么事情,就单独拿出来学习下了,参照了网上的博文,这里主要是简单的讲讲用法。

具体对这两个类,不做过多介绍,有个在线文档,需要的可以自己去看 http://www.yiibai.com/guava/guava_joiner.html

1、需要的jar

2、代码

 package com.joiner.test;

 import java.util.ArrayList;
import java.util.List;
import java.util.Map; import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap; /**
* 对 Joiner类的使用测试
*
* @author Administrator
*
*/
public class JoinerTest { public static void main(String[] args) { // 项目切入点,引入我的学习
// Joiner.on(":").join(RedisType.SHOP_CART_SHOP.getIndex(),Joiner.on("@").join(userId,shopId)); // 测试1
Joiner joiner = Joiner.on("--"); // 定义新字符串的分隔符
// String ss = joiner.join(new String[]{"a","b","c"}); //将数组拆开,重新组合了 //
// a--b--c
String ss = joiner.join("aa", "bb", "cc"); // 将这几个字符串重新组合了 // aa--bb--cc
System.out.println(ss); // 测试2
List<String> strList = new ArrayList<String>();
for (int i = 0; i <= 5; i++) {
strList.add("a" + i);
}
String s2 = joiner
// .skipNulls() //可以过滤 null
.on("+").join(strList);
System.out.println("joiner测试list:" + s2); // a0+a1+a2+a3+a4+a5 StringBuilder builder = new StringBuilder();
for (String str : strList) {
if (null != str) {
builder.append(str).append("+");
}
}
builder.setLength(builder.length() - 1);
System.out.println("传统拼接list测试:" + builder.toString()); // a0+a1+a2+a3+a4+a5 // 测试3
// MapJoinner 的使用
// 生产一个查询id: 123,name: green的学生信息的url。
String url = Joiner.on("&") // 定义 传入map item之间分隔符
.withKeyValueSeparator("=") // 定义 传递map项key/value之间的分隔符
.join(ImmutableMap.of("id", "123", "name", "green"));
System.out.println("拼接的url--------" + url); // id=123&name=green // 测试4
// MapSplitter 的使用
// 对url中的查询字符串"id=123&name=green"进行分割
String urlStr = "id=123&name=green";
Map<String, String> map = Splitter
.on("&")
.withKeyValueSeparator("=")
.split(urlStr);
System.out.println("判断map是否为空:" + map.isEmpty());
for (Map.Entry<String, String> set : map.entrySet()) {
System.out.println("key==" + set.getKey());
System.out.println("value==" + set.getValue());
// 打印结果
// key==id
// value==123
// key==name
// value==green
} } }

3、最后的打印效果

<正则吃饺子> :关于Guava中 Joiner 和 Splitter 的简单使用的更多相关文章

  1. <正则吃饺子>:关于java中垃圾回收技术的简单学习总结

    知识介绍来自网络,后面会根据继续学习进行补充和适当的修改,谢谢!原文地址:http://www.importnew.com/26821.html#comment-578355 java中的垃圾回收机制 ...

  2. guava之Joiner 和 Splitter

    最近在给客户准备一个Guava的分享,所以会陆续的更新关于Guava更多的细节分享.本文将记录Guava中得字符串处理Joiner(连接)和Splitter(分割)处理. Joiner 首先我们来看看 ...

  3. guava之Joiner 和 Splitter(转)

    最近在给客户准备一个Guava的分享,所以会陆续的更新关于Guava更多的细节分享.本文将记录Guava中得字符串处理Joiner(连接)和Splitter(分割)处理. Joiner 首先我们来看看 ...

  4. <正则吃饺子> :关于redis集群的搭建、集群测试、搭建中遇到的问题总结

    项目中使用了redis ,对于其基本的使用,相对简单些,根据项目中已经提供的工具就可以实现基本的功能,但是只是这样的话,对于redis还是太肤浅,甚至刚开始时候,集群.多节点.主从是什么,他们之间是什 ...

  5. <正则吃饺子> :关于mybatis中使用的问题(一)

    在公司项目开始之前,根据springboot .mybatis.Swagger2 整合了一个demo,在测试时候,遇到的问题,简单记录.之前在使用mybatis时候,没有注意到这一点. 1.错误:Th ...

  6. <正则吃饺子>:关于java中对内存部分的简单总结整理

    在项目和一些群讨论中,经常看到对内存的处理,但是,自己确是一知半解的,基于此,就把这部分的知识简单的整理了下,知识点来源于网络博文,也一一标明出处,谢谢. package com.love.malin ...

  7. <正则吃饺子> :关于Collections中 比较器的简单使用

    在线文档地址: http://tool.oschina.net/apidocs/apidoc?api=jdk-zh sort public static <T extends Comparabl ...

  8. <正则吃饺子> :关于oracle 中 with的简单使用

    oracle中 with的简单使用介绍,具体可以参见其他的博文介绍,在这里只是简单的介绍: with 构建了一个临时表,类似于存储过程中的游标,我是这么理解的. 一.数据准备: select * fr ...

  9. <正则吃饺子> :关于oracle 中 exists 、not exists 的简单使用

    话不多说,简单的总结而已.网络上很多很详细介绍. 例如,博文:http://blog.csdn.net/zhiweianran/article/details/7868894  当然这篇也是转载的,原 ...

随机推荐

  1. wdatepicker ie8等问题

    官方文档:http://www.my97.net/demo/resource/2.4.asp 以下内容为使用中遇到的问题,具体该插件具有的方法请自行查阅官方文档. 1.当触发wdatepicker事件 ...

  2. android相关文件夹的存取方式与函数解析---全

    因为排版问题.转为markdown编辑: http://blog.csdn.net/self_study/article/details/58587412

  3. java多个文件压缩下载

    public static void zipFiles(File[] srcfile,ServletOutputStream sos){ byte[] buf=new byte[1024]; try ...

  4. python(13)- 文件处理应用Ⅱ:增删改查

    用户选择1,增加功能: 用户输入www.oldboy2.org和server 11111 weight 2222 maxconn 3333后, 在www.oldboy2.org下增加一条server信 ...

  5. 在命令行下运行Matlab

    2014-04-20 22:08:11 在命令行下执行: matlab -help 可以得到帮助文件: Usage: matlab [-h|-help] | [-n | -e] [-arch | v= ...

  6. 谈谈 T 型人才

    谈谈 T 型人才   昨天的图片发模糊了,正好我把这个话题展开聊一聊吧.这个话题是关于复合型人才的,我把它称作 T 型人才. 「全栈」工程师 前一段时间,「全栈」工程师的概念很火,不过大多数时候,「全 ...

  7. java 对账关键点

    原理:双方交易信息对比是否平账 注意:对账bean必须重写 equals 方法 如图: //对账方法

  8. 主题:iframe高度的自适应

    在项目开发中,遇到的一个问题.弹出的页面中有iframe.例 <iframe src="www.baidu.html" width="100%" char ...

  9. JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对照

    1.什么是JVM? JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才干够运行Java程序,JAVA在编译后会生成相似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编 ...

  10. xcode升级到6.0以后遇到的警告错误解决方法

    Xcode 升级后,常常遇到的遇到的警告.错误,解决方法 从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了.1,警告:“xoxoxoxo”  is depreca ...