list转化字符串 StringJoiner

时间:2019-02-28
本文章向大家介绍list转化字符串 StringJoiner,主要包括list转化字符串 StringJoiner使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 List<String> list = ImmutableList.of("Hollis","hollischuang","Java干货");

        String s1 = list.stream().reduce(new StringBuilder(), (sb, s) -> sb.append(s).append(','), StringBuilder::append).toString();


        String s = list.stream().reduce((a, b) -> a + "," + b).toString();

        String collect = list.stream().collect(Collectors.joining(":"));

        System.out.println(s1);
        System.out.println(s.toString());
        System.out.println(collect);
		//还可以
		StringBuilder builder = new StringBuilder();
		
		if (!list.isEmpty()) {
		    builder.append(list.get(0));
		    for (int i = 1, n = list.size(); i < n; i++) {
		        builder.append(",").append(list.get(i));
		    }
		}
		builder.toString();

结果

StringJoiner的用法比较简单,下面的代码中,我们使用StringJoiner进行了字符串拼接。

public class StringJoinerTest {

    public static void main(String[] args) {
        StringJoiner sj = new StringJoiner("Hollis");

        sj.add("hollischuang");
        sj.add("Java干货");
        System.out.println(sj.toString());

        StringJoiner sj1 = new StringJoiner(":","[","]");

        sj1.add("Hollis").add("hollischuang").add("Java干货");
        System.out.println(sj1.toString());
    }
}

结果

hollischuangHollisJava干货
[Hollis:hollischuang:Java干货]
原理
public StringJoiner add(CharSequence newElement) {
    prepareBuilder().append(newElement);
    return this;
}

private StringBuilder prepareBuilder() {
    if (value != null) {
        value.append(delimiter);
    } else {
        value = new StringBuilder().append(prefix);
    }
    return value;
}

如果日常开发中中,需要进行字符串拼接,如何选择?

1、如果只是简单的字符串拼接,考虑直接使用"+"即可。

2、如果是在for循环中进行字符串拼接,考虑使用StringBuilder和StringBuffer。

3、如果是通过一个集合(如List)进行字符串拼接,则考虑使用StringJoiner。

4、如果是对一组数据进行拼接,则可以考虑将其转换成Stream,并使用StringJoiner处理。