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、最后的打印效果

  • 相关阅读:
    C# 实现 Snowflake算法生成唯一性Id
    kafka可视化客户端工具(Kafka Tool)的基本使用(转)
    docker 安装kafka
    Model类代码生成器
    使用docker 部署rabbitmq 镜像
    Vue 增删改查 demo
    git 提交代码到库
    Android ble蓝牙问题
    mac 配置 ssh 到git (Could not resolve hostname github.com, Failed to connect to github.com port 443 Operation timed out)
    okhttp
  • 原文地址:https://www.cnblogs.com/zhengzeze/p/7253534.html
Copyright © 2011-2022 走看看