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);
    }

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

 

posted @ 2018-08-15 22:18  最爱五仁月饼  阅读(158)  评论(0编辑  收藏  举报