jdk1.8 添加了 一个新的用于字符串连接的类,专门用于这种需要分隔符的场合。那就是 StringJoiner
StringJoiner 在构造时可以指定一个分隔符(delimiter),然后每连接一个元素它便会加上一个delimiter 。
jdk 1.8为String 类添加了一个新的静态方法 , String.join
join(CharSequence delimiter, CharSequence… elements) : String
join(CharSequence delimiter, Iterable
private void stringJoinTest(){
List<String> names = new ArrayList<String>();
names.add("李四");
names.add("王五");
names.add("马六");
names.add("刘能");
String join = String.join("-", names);
System.out.println(join);
}
输出结果 : 李四-王五-马六-刘能
但是String.join 也有不足 ,增加前缀 、后缀 是不可以的, 不过StringJoiner 支持。
Collectors.joining 函数 :
无参的 joining() 方法,即不存在连接符 (底层实现为 StringBuilder)
joining(CharSequence delimiter ) 方法, 即分隔符为 delimiter(底层实现为 StringJoiner);
joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)方法,即分隔符为 delimiter,前缀为 prefix,后缀为 suffix(底层实现为 StringJoiner)
查看 StringJoiner 的源码,我们可以知道 StringJoiner 的底层实现就是 StringBuilder