List<String>拼接为一个String的几种方法

文章分类:JavaSE 标签:JavaCodeSnippet, JavaUtil 作者:Hackyle

更新时间:Wed Dec 07 17:19:19 CST 2022

本文的主要内容是:介绍2类共5种将一个List拼接为一个String的方法并添加连接符,不使用第三方插件,仅使用JDK原生API

内容导览

朴素

  • 遍历每个元素,拼接上连接符;结束后再去除掉最后一个连接符
  • 遍历每个元素,拼接上连接符;结束后再去除掉最后一个连接符
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.List;

/**
 * 字符串拼接:朴素算法
 */
public class StringJoinUtils {
    private List<String> dataList;

    /**
     * 遍历每个元素,拼接上连接符;结束后再去除掉最后一个连接符
     */
    @Test
    public void plain01() {
        StringBuilder sb = new StringBuilder();
        for (String ele : dataList) {
            sb.append(ele).append(",");
        }
        String result = sb.subSequence(0, sb.length()-1).toString(); //去除几个,length就减几
        System.out.println(result);
    }

    /**
     * 遍历每个元素,只有符合不是最后一个元素的条件,才拼接连接符
     */
    @Test
    public void plain02() {
        StringBuilder sb = new StringBuilder();
        for (int i = 0, len = dataList.size(); i < len; i++) {
            sb.append(dataList.get(i));
            if(i != len-1) {
                sb.append(",");
            }
        }
        System.out.println(sb.toString());
    }

    @BeforeEach
    public void init() {
        dataList = new ArrayList<>();
        dataList.add("Aa");
        dataList.add("Bb");
        dataList.add("Cc");
    }
}

JDK API

  • String.join方法
  • stream.collect(Collectors.joining(","))
  • StringJoiner工具类
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

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

/**
 * 字符串拼接
 */
public class StringJoinUtils {
    private List<String> dataList;

    /**
     * 调用JDK的API
     */
    @Test
    public void jdkApi() {
        String result = String.join(",", dataList);
        System.out.println(result);
    }

    /**
     * 使用Stream的方式连接
     */
    @Test
    public void stream() {
        List<String> dataList = new ArrayList<>();
        dataList.add("Aa");
        dataList.add("Bb");
        dataList.add("Cc");

        String result = dataList.stream().collect(Collectors.joining(","));
        System.out.println(result);
    }

    /**
     * 使用JDK内置的工具类
     */
    @Test
    public void joinUtil() {
        StringJoiner sj = new StringJoiner(",");
        for (String ele : dataList) {
            sj.add(ele);
        }
        System.out.println(sj.toString());
    }

    @BeforeEach
    public void init() {
        dataList = new ArrayList<>();
        dataList.add("Aa");
        dataList.add("Bb");
        dataList.add("Cc");
    }
}

 

————————————————
版权声明:非明确标注皆为原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上本文链接及此声明。
原文链接:https://blog.hackyle.com/article/java/concate-list-to-string

留下你的评论

Name: 

Email: 

Link: 

TOP