在现在项目中经常看到 这两个类的使用,开始时候不明白具体是做的什么事情,就单独拿出来学习下了,参照了网上的博文,这里主要是简单的讲讲用法。
具体对这两个类,不做过多介绍,有个在线文档,需要的可以自己去看 http://www.yiibai.com/guava/guava_joiner.html
1、需要的jar
2、代码
1 package com.joiner.test; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Map; 6 7 import com.google.common.base.Joiner; 8 import com.google.common.base.Splitter; 9 import com.google.common.collect.ImmutableMap; 10 11 /** 12 * 对 Joiner类的使用测试 13 * 14 * @author Administrator 15 * 16 */ 17 public class JoinerTest { 18 19 public static void main(String[] args) { 20 21 // 项目切入点,引入我的学习 22 // Joiner.on(":").join(RedisType.SHOP_CART_SHOP.getIndex(),Joiner.on("@").join(userId,shopId)); 23 24 // 测试1 25 Joiner joiner = Joiner.on("--"); // 定义新字符串的分隔符 26 // String ss = joiner.join(new String[]{"a","b","c"}); //将数组拆开,重新组合了 // 27 // a--b--c 28 String ss = joiner.join("aa", "bb", "cc"); // 将这几个字符串重新组合了 // aa--bb--cc 29 System.out.println(ss); 30 31 // 测试2 32 List<String> strList = new ArrayList<String>(); 33 for (int i = 0; i <= 5; i++) { 34 strList.add("a" + i); 35 } 36 String s2 = joiner 37 // .skipNulls() //可以过滤 null 38 .on("+").join(strList); 39 System.out.println("joiner测试list:" + s2); // a0+a1+a2+a3+a4+a5 40 41 StringBuilder builder = new StringBuilder(); 42 for (String str : strList) { 43 if (null != str) { 44 builder.append(str).append("+"); 45 } 46 } 47 builder.setLength(builder.length() - 1); 48 System.out.println("传统拼接list测试:" + builder.toString()); // a0+a1+a2+a3+a4+a5 49 50 // 测试3 51 // MapJoinner 的使用 52 // 生产一个查询id: 123,name: green的学生信息的url。 53 String url = Joiner.on("&") // 定义 传入map item之间分隔符 54 .withKeyValueSeparator("=") // 定义 传递map项key/value之间的分隔符 55 .join(ImmutableMap.of("id", "123", "name", "green")); 56 System.out.println("拼接的url--------" + url); // id=123&name=green 57 58 // 测试4 59 // MapSplitter 的使用 60 // 对url中的查询字符串"id=123&name=green"进行分割 61 String urlStr = "id=123&name=green"; 62 Map<String, String> map = Splitter 63 .on("&") 64 .withKeyValueSeparator("=") 65 .split(urlStr); 66 System.out.println("判断map是否为空:" + map.isEmpty()); 67 for (Map.Entry<String, String> set : map.entrySet()) { 68 System.out.println("key==" + set.getKey()); 69 System.out.println("value==" + set.getValue()); 70 // 打印结果 71 // key==id 72 // value==123 73 // key==name 74 // value==green 75 } 76 77 } 78 79 }
3、最后的打印效果