zoukankan      html  css  js  c++  java
  • 001 Joiner

    一.概述

      本类的名称的含义就是连接器,可以帮助我们实现数据(对象)的连接.


     二 . 对象的创建  

       @Test
        public void test1() {
            Joiner joiner = Joiner.on(",");
        }

    创建一个Joiner对象,我们可以使用on()方法,含义就是会用这个分隔符进行连接数据.

    我们可以发现我们实际上都是使用字符来完成连接器的.


     三 . 连接方法

      

    Joiner的连接方法核心就是join()方法.我们下面看几个测试例子.

        @Test
        public void test2() {
            List<String> data = Arrays.asList("1","2","3");
            String result = Joiner.on("#").join(data);
            System.out.println("result="+result);
        } // result=1#2#3

    上面就是核心的连接方法,从上面的参数我们可以了解到,join()方法实际上可以帮助我们进行数组和集合的连接.

      我们看一下其中的选择方法:

    看下面的例子:

    @Test
        public void test3() {
            List<String> data = Arrays.asList("1",null,"2","3");
            // 忽略掉null的影响
            //1#2#3 ,如果出现null,会发生空指针异常
            String result = Joiner.on("#").skipNulls().join(data);
            System.out.println(result);
            String result2 =  Joiner.on("#").useForNull("@@").join(data);
            //1#@@#2#3
            System.out.println(result2);
        }

    三 .追加方法

    @Test
        public void test4() {
            StringBuilder prefix =new  StringBuilder("prefix");
            List<String> data = Arrays.asList("1",null,"2","3");
            String result = Joiner.on("#").useForNull("@@").appendTo(prefix, data).toString();
            //prefix1#@@#2#3
            System.out.println(result);
        }

    我们看到,我们最常用的可能就是StringBuilder这样的结构了.

    另外一个常用的就是将数据追加到一个文件之中.

    看下面的例子:

        @Test
        public void test5() {
            final String fileName = "D:\log.txt"; 
            List<String> data = Arrays.asList("1",null,"2","3");
            try(FileWriter write = new FileWriter(fileName);){
                Joiner.on("#").skipNulls().appendTo(write, data);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    我们实现了向标准的文件之中追加数据.


    四 .对Map集合的操作  

    @Test
        // 测试对Map的操作
        public void test6() {
            Map<String,String> map = new HashMap<>();
            map.put("key1","value1");
            map.put("key2","value2");
            map.put("key3","value3");
            String result = Joiner.on("#").withKeyValueSeparator("-").join(map);
            //key1-value1#key2-value2#key3-value3
            System.out.println(result);
        }

    这个操作在有些时候会非常的方便的.

  • 相关阅读:
    Java反射机制
    两个port贴合七夕主题,百度输入法的“情感营销”策略
    2014年百度之星程序设计大赛
    Java内存模型
    远程推送
    【NOI2010】海拔【平面图最小割】
    句法模式识别(二)-正规文法、上下文无关文法
    通过c# 实现mysql 数据库的备份和附加
    时光轴二之RecyclerView版时光轴效果
    手游产品经理初探(四)从Buybutton谈玩家付费
  • 原文地址:https://www.cnblogs.com/trekxu/p/9484405.html
Copyright © 2011-2022 走看看