zoukankan      html  css  js  c++  java
  • <正则吃饺子> :关于Guava中 Joiner 和 Splitter 的简单使用

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

    具体对这两个类,不做过多介绍,有个在线文档,需要的可以自己去看 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、最后的打印效果

  • 相关阅读:
    第03组 Alpha冲刺 (4/6)
    第03组 Alpha冲刺 (3/6)
    第03组 Alpha冲刺 (2/6)
    第03组 Alpha冲刺 (1/6)
    第03组(63) 需求分析报告
    第3组(63) 团队展示
    结对编程作业
    第03组 Alpha冲刺 总结
    第03组 Alpha冲刺 (6/6)
    第03组 Alpha冲刺 (5/6)
  • 原文地址:https://www.cnblogs.com/zhengzeze/p/7253534.html
Copyright © 2011-2022 走看看