JAVA8 JDK 对字符串连接的改进

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 函数 :

  1. 无参的 joining() 方法,即不存在连接符 (底层实现为 StringBuilder)

  2. joining(CharSequence delimiter ) 方法, 即分隔符为 delimiter(底层实现为 StringJoiner);

  3. joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)方法,即分隔符为 delimiter,前缀为 prefix,后缀为 suffix(底层实现为 StringJoiner)

查看 StringJoiner 的源码,我们可以知道 StringJoiner 的底层实现就是 StringBuilder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值