Joiner工具类使用
一、Joiner 连接串的使用
在jdk中,可以使用String类下的join方法,要求集合中的元素都是String类型。
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
String join = String.join(",", list);
System.out.println(join);//1,2
2、使用第三方的org.apache.commons.lang3.StringUtils工具包也有个join方法
Integer[] arr = new Integer[]{3,4,5,6};
System.out.println(StringUtils.join(arr, "#"));//3#4#5#6
guava提供的 Joiner 类,集合中元素可以不为String
List<String> list2 = Arrays.asList("Google", "Guava",
"Java", "Scala", "Kafka");
String result = Joiner.on("; ").join(list2);
System.out.println(result);//Google; Guava; Java; Scala; Kafka
------------------------------------------------------------------------
List<Integer> list3 = Arrays.asList(1,5,7);
String result3 = Joiner.on(",").join(list3);
System.out.println(result3);//1,5,7
//将Map转成String
Map<String,Object> map = new HashMap<>();
map.put("name","jack");
map.put("age",12);
String result4 = Joiner.on(",").withKeyValueSeparator("=").join(map);
System.out.println(result4);//name=jack,age=12
二、Splitter 分隔符的使用
//传统写法
String temp = "Hello|Java";
List<String> list = Arrays.asList(temp.split("\\|"));//注意需要转义
System.out.println(list);
//guava的写法
List<String> list = Splitter.on("|").splitToList("Hello|Java");
System.out.println(list);//[Hello, Java]
//根据分隔符, 分割几次字符串.
List<String> list = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell");
System.out.println(list);//[Java, C++, C#Shell]
//将url中的键值对存储到map里面
Map<String, String> map = Splitter.on("&").withKeyValueSeparator('=').split("id=123&name=green");
System.out.println(map);//{id=123, name=green}