集合流之“将List<Integer>转为String并用逗号分割”

1、使用【流+Collectors】转换

复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;

/**
 * 功能测试
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 将List<Integer>转为String并用逗号分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 用流将List<String>获取集合中的数,然后用Collectors.joining(“分隔符”)来进行内部分割,达到转String的目的
        String subList = orderList.stream().map(String::valueOf).collect(Collectors.joining(","));

        // subList = 1,2,3,4
        System.out.println("subList = " + subList);
    }

}
复制代码

 

  

2、使用谷歌的Joiner

复制代码
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Joiner;
import org.junit.Test;
import com.bessky.pss.common.util.CommonUtils;

/**
 * 功能测试
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 将List<Integer>转为String并用逗号分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 使用谷歌的分割方法
        String subList = Joiner.on(",").join(orderList);
     // 结果:subList = 1,2,3,4 System.out.println(
"subList = " + subList); } }
复制代码

 

3、使用String.join方法(不用需要CharSequence类型的子类才行,并且需要同类型)

复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;

/**
 * 功能测试
 *
 * @author wzw
 * @date 2021/7/24
 */
public class wzwTest {

    /**
     * 功能描述: 将List<Integer>转为String并用逗号分割
     *
     * @author 王子威
     * @param    null
     */
    @Test
    public void test() {
        // 案例集合
        List<Integer> orderList = new ArrayList<>();
        orderList.add(1);
        orderList.add(2);
        orderList.add(3);
        orderList.add(4);

        // 用流先将:List<Integer>集合转为List<String>
        List<String> collect = orderList.stream().map(String::valueOf).collect(Collectors.toList());
        // 使用String.join方法将List<String>转为String,并用逗号分割
        String subList = String.join(",", collect);

        // subList = 1,2,3,4
        System.out.println("subList = " + subList);
    }

}
复制代码

 

3、总结

  • 第1、3方式类似。最后的本质都是使用StringJoiner类的有参构造
  • 我更倾向用1和2。

 

posted @   骚哥  阅读(4229)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示