Joiner 用于连接操作,类似于+或者StringBuilder的append。
@Test
public void test(){
String[] strArray1 = {"abc","def"};
String result1 = Joiner.on(",").join(strArray1);
System.out.println(result1);
String[] strArray2 = {"abc",null,"def"};
//如果存在null,则不能直接join,必须配合skipNulls 或 useForNull,否则会抛出 NullPointerException 异常
//String result2 = Joiner.on(",").join(strArray2);
String result2_1 = Joiner.on(",").skipNulls().join(strArray2);
String result2_2 = Joiner.on(",").useForNull("null").join(strArray2);
System.out.printf("result2_1:%s\tresult2_2:%s\n",result2_1,result2_2);
/*
* Map 处理 ,如果map中的键值包括null,则必须使用useForNull(String str),如果不处理会抛出 NullPointerException,
* 也不能使用skipNulls(),会抛出 UnsupportedOperationException 异常。
*/
Map<String, String> map = Maps.newHashMap();
map.put("1", "abc");
map.put("2", "def");
map.put("3", "ghi");
//map.put(null, "jkl");
map.put("jkl", null);
String result3 = Joiner.on("\t").useForNull("null").withKeyValueSeparator(":").join(map);
System.out.println(result3);
}
输出:
abc,def
result2_1:abc,def result2_2:abc,null,def
1:abc 2:def 3:ghi jkl:null