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

具体对这两个类,不做过多介绍,有个在线文档,需要的可以自己去看 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. [转] git clone 远程分支

    git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下: 找一个干净目录,假设是git_work cd git_work git clone http://my ...

  2. Java链接MySql数据库(转)

    import java.sql.*; public class JDBCTest { public static void main(String[] args){ // 驱动程序名 String d ...

  3. 侧边打赏-html

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  4. 04 http协议模拟登陆发帖

    <?php require('./http.class.php'); $http = new Http('http://home.verycd.com/cp.php?ac=pm&op=s ...

  5. 【BZOJ1064】[Noi2008]假面舞会 DFS树

    [BZOJ1064][Noi2008]假面舞会 Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择 ...

  6. 5 Ways to Send Email From Linux Command Line

    https://tecadmin.net/ways-to-send-email-from-linux-command-line/ We all know the importance of email ...

  7. javascript JSON.parse和eval的区别

    SON.parse()用来将标准json字符串转换成js对象:eval()除了可以将json字符串(非标准的也可以,没有JSON.parse()要求严格)转换成js对象外还能用来动态执行js代码.例如 ...

  8. TypeSafe Config使用

    ================typesafeconfig的使用==================== #1.加入依赖包 config-1.2.1.jar #2.加载配置 ConfigFactor ...

  9. Cocos2d-x之CCMenu理解

    Menu创建菜单: Cocos2d-x下的菜单创建包括: 1.CCMenuItemFont    字体按钮创建 CCMenuItemFont * onlineVideo = MenuItemFont: ...

  10. vim编辑makefile时临时不展开tab为空格

    可以先敲ctrl-v组合键,再敲tab键,这样就不会被转换成空格了. 给自己的备忘!