字符串拼接Joiner和java 1.8的String.join

多种方式实现集合的字字符串拼接比较
代码如下:
import com.google.common.base.Joiner;

import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;
import java.util.stream.Collectors;

public class JoinerTest {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>() {
            {
                add("test1");add("test2");add("test3");add("test4");add("test5");
            }
        };
        //使用for循环+StringBuilder拼接  
        //这种写法可以被下面的StringJoiner代替 
        //优点是可以一个循环中拼接多个属性
        StringBuilder sb= new StringBuilder();
        for (String s: list) {
            sb.append(s).append(",");
            sb.append("test").append(",");
        }
        sb.deleteCharAt(sb.length()-1);
        System.out.println("StringBuilder:"+sb.toString());
        //使用StringJoiner 拼接   
        //如果前后要使用固定格式的字符包装,可以这样写:new StringJoiner(",","[","]");
        StringJoiner stringJoiner = new StringJoiner(",");
        list.forEach(s -> {
            stringJoiner.add(s);
            stringJoiner.add("test");
        });
        System.out.println("stringJoiner:"+stringJoiner.toString());

        //使用谷歌Joiner拼接
        String join = Joiner.on(",").join(list);
        System.out.println("谷歌Joiner:"+join);
        //使用String.join
        String stringJoin = String.join(",", list);
        System.out.println("stringJoin:"+stringJoin);

        //使用stream 拼接
        String collect = list.stream().map(a -> a.toString()).collect(Collectors.joining(","));
        System.out.println("streamJoin:"+collect);
    }
}

运行结果:

StringBuilder:test1,test,test2,test,test3,test,test4,test,test5,test
stringJoiner:test1,test,test2,test,test3,test,test4,test,test5,test
谷歌Joiner:test1,test2,test3,test4,test5
stringJoin:test1,test2,test3,test4,test5
streamJoin:test1,test2,test3,test4,test5

 


版权声明:本文为cainiao_xiaowu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。