一.概述
本类的名称的含义就是连接器,可以帮助我们实现数据(对象)的连接.
二 . 对象的创建
@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); }
这个操作在有些时候会非常的方便的.