一.概述
本类的名称的含义就是连接器,可以帮助我们实现数据(对象)的连接.
二 . 对象的创建
@Testpublic void test1() {Joiner joiner = Joiner.on(",");}
创建一个Joiner对象,我们可以使用on()方法,含义就是会用这个分隔符进行连接数据.
我们可以发现我们实际上都是使用字符来完成连接器的.
三 . 连接方法
Joiner的连接方法核心就是join()方法.我们下面看几个测试例子.
@Testpublic 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()方法实际上可以帮助我们进行数组和集合的连接.
我们看一下其中的选择方法:
看下面的例子:
@Testpublic 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#3System.out.println(result2);}
三 .追加方法
@Testpublic 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#3System.out.println(result);}
我们看到,我们最常用的可能就是StringBuilder这样的结构了.
另外一个常用的就是将数据追加到一个文件之中.
看下面的例子:
@Testpublic 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-value3System.out.println(result);}
这个操作在有些时候会非常的方便的.