1、使用【流+Collectors】转换

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. import org.junit.Test;
  5.  
  6. /**
  7. * 功能测试
  8. *
  9. * @author wzw
  10. * @date 2021/7/24
  11. */
  12. public class wzwTest {
  13.  
  14. /**
  15. * 功能描述: 将List<Integer>转为String并用逗号分割
  16. *
  17. * @author 王子威
  18. * @param null
  19. */
  20. @Test
  21. public void test() {
  22. // 案例集合
  23. List<Integer> orderList = new ArrayList<>();
  24. orderList.add(1);
  25. orderList.add(2);
  26. orderList.add(3);
  27. orderList.add(4);
  28.  
  29. // 用流将List<String>获取集合中的数,然后用Collectors.joining(“分隔符”)来进行内部分割,达到转String的目的
  30. String subList = orderList.stream().map(String::valueOf).collect(Collectors.joining(","));
  31.  
  32. // subList = 1,2,3,4
  33. System.out.println("subList = " + subList);
  34. }
  35.  
  36. }

  

2、使用谷歌的Joiner

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import com.google.common.base.Joiner;
  4. import org.junit.Test;
  5. import com.bessky.pss.common.util.CommonUtils;
  6.  
  7. /**
  8. * 功能测试
  9. *
  10. * @author wzw
  11. * @date 2021/7/24
  12. */
  13. public class wzwTest {
  14.  
  15. /**
  16. * 功能描述: 将List<Integer>转为String并用逗号分割
  17. *
  18. * @author 王子威
  19. * @param null
  20. */
  21. @Test
  22. public void test() {
  23. // 案例集合
  24. List<Integer> orderList = new ArrayList<>();
  25. orderList.add(1);
  26. orderList.add(2);
  27. orderList.add(3);
  28. orderList.add(4);
  29.  
  30. // 使用谷歌的分割方法
  31. String subList = Joiner.on(",").join(orderList);
         // 结果:subList = 1,2,3,4
  32. System.out.println("subList = " + subList);
  33. }
  34.  
  35. }

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

  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.stream.Collectors;
  4. import org.junit.Test;
  5.  
  6. /**
  7. * 功能测试
  8. *
  9. * @author wzw
  10. * @date 2021/7/24
  11. */
  12. public class wzwTest {
  13.  
  14. /**
  15. * 功能描述: 将List<Integer>转为String并用逗号分割
  16. *
  17. * @author 王子威
  18. * @param null
  19. */
  20. @Test
  21. public void test() {
  22. // 案例集合
  23. List<Integer> orderList = new ArrayList<>();
  24. orderList.add(1);
  25. orderList.add(2);
  26. orderList.add(3);
  27. orderList.add(4);
  28.  
  29. // 用流先将:List<Integer>集合转为List<String>
  30. List<String> collect = orderList.stream().map(String::valueOf).collect(Collectors.toList());
  31. // 使用String.join方法将List<String>转为String,并用逗号分割
  32. String subList = String.join(",", collect);
  33.  
  34. // subList = 1,2,3,4
  35. System.out.println("subList = " + subList);
  36. }
  37.  
  38. }

3、总结

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

集合流之“将List<Integer>转为String并用逗号分割”的更多相关文章

  1. string通过逗号分割不用split方法

    package com.simon; import java.util.ArrayList; import java.util.Iterator; import java.util.List; pub ...

  2. 集合流之"交集(相同)和差集(区别的)"的使用

    一.需求 今天做的是将两个字符串转为数组后再转集合,然后利用集合的流stream来进行差集过滤 二.差集代码 差集:将两个集合相同的数据去掉,留下不同的数据 1 @Test 2 public void ...

  3. java语言中Object转为String的几种形式

    在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结.常用的方法有Object.toString(),(String)要转换的对象,St ...

  4. Object转Integer,String

    object先转为字符串,然后通过int 的封装类(Integer)的pasreInt()方法转为int 例如: Object  ob = 123; Integer.parseInt(String.v ...

  5. Integer、String、StringBuffer、StringBuilder

    Integer Interger 是int基本数据类型的包装类,在Integer内部封装了一个final int value的属性. 构造方法: Integer类提供了两种构造方法:它们都会返回一个I ...

  6. Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么?

    Integer.valueof(String s)和Integer.parseInt(String s)的具体区别是什么? Integer.valueof(String s)是将一个包装类是将一个实际 ...

  7. [C#]List<int>转string[],string[]转为string

    // List<int>转string[] public string[] ListInt2StringArray(List<int> input) { return Arra ...

  8. Integer.parseInt(String s) 和 Integer.valueOf(String s) 的区别

    通过查看java.lang.Integer的源码可以发现, 它们最终调用的都是 /** * Parses the string argument as a signed integer in the ...

  9. java 13-4 Integer和String、int之间的转换,进制转换

    1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B. ...

随机推荐

  1. 【C#TAP 异步编程】异步接口 OOP

    在我们深入研究"异步OOP"之前,让我们解决一个相当常见的问题:如何处理异步方法的继承?那么"异步接口"呢? 幸运的是,它确实可以很好地与继承(和接口)一起使用 ...

  2. 【C# 线程】内存屏障 MemoryBarrier

    背景 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁).SpinLocked(自旋锁).易变构造(volatile关键字.volatile类.Thread.Vo ...

  3. 【C# 程序集】把自己的程序集添加|卸载 到GAC 全局程序集缓存中

    添加全局程序集缓存 Global Assembly Cache Tool (Gacutil.exe) 操作环境windows10+vs2019 cmd.exe位置在 C:\Windows\System ...

  4. VisualStudio2019 利用代码片段管理器新建快捷命令

    原文:https://www.cnblogs.com/huguodong/p/12694902.html 一.前言 VisualStudio 可以通过敲出缩写字符串,然后按两次Tab按键自动展开成一段 ...

  5. Qt:QTextStream

    0.说明 QTextStream提供了读写文本文件的接口. QTextStream可以操作QIODevice,  QByteArray 和 QString,调用QTextStream的流操作可以方便的 ...

  6. C语言每日一题

    66. 加一 /** * Note: The returned array must be malloced, assume caller calls free(). */ /* 从后向前(从个位)开 ...

  7. java内存区域模型和详解

    一,概述 java虚拟机运行时数据区模型图: 主要包括:程序计数器,java虚拟机栈,本地方法栈,java 堆,方法区(元空间). 其中堆和方法区由所有线程共享的数据区:程序计数器,java虚拟机栈, ...

  8. 安装xpath helper方便进行爬虫

    安装xpath helper方便进行爬虫 因为我使用的是edge浏览器,扩展商店搜索不到xpath-helper,但是我不甘心,取下载源扩展直接放在edge中试试 下载XPath helper的源码 ...

  9. 同步a表的数据到 b表

    //同步a表的数据到 b表UPDATE a t1 JOIN b t2 ON t1.finance_id = t2.idSET t1.a_id = t2.a_id,t1.b_name = t2.b_na ...

  10. mysql常用索引

    1.索引 在关系数据库中,索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用相当 ...