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。

集合流之“将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. 不知道这10个术语,你还敢说会JavaScript?

    每个行业,都有业内"行话",不了解这些行话的人,很难融入到行业中,也永远装不了逼. 从Curry到Closes,有很多JavaScript行话(该领域中使用的特殊词汇)知道这些行话 ...

  2. oj教程--队列

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的 ...

  3. Qt:QDateTime

    0.说明 提供时间日期的表达和相关函数. QDateTime通过日期+时间来构造一个日期时间.它综合了QDate和QTime的所有特性. 它可以通过系统时钟来获取当前DateTime.它还提供了比较时 ...

  4. C# ProgressBar的简单使用

    ProgressBar控件(进度条)用于在win窗体中显示进度,由于它的值会不断更新,为了不让界面假死,一般都是采用多线程的方式对进度条进行管理.有关ProgressBar的理论基础跟详细知识我在这里 ...

  5. 微信小程序获取手机号

    wxml 代码: <!-- 授权 --> <button type="primary" open-type="getUserInfo" bin ...

  6. centos7下mysql安装

    centos7只包含了mariadb的安装源 我们需要到官方下载社区版:https://dev.mysql.com/downloads/ 下载安装包并上传到服务器 安装出现错误 这个是系统自带的Mar ...

  7. [链表]LeetCode 25 K组一个翻转链表

    LeetCode 25 k组一个翻转链表 TITLE 示例 1: 输入:head = [1,2,3,4,5], k = 2 输出:[2,1,4,3,5] 示例 2: 输入:head = [1,2,3, ...

  8. ArcMap操作练习题目及答案

    题目: 1.主观题(20分)用文字说明中学选址的过程,并说明分析过程中所用的空间分析方法和分析工具. 2.主观题(10分)计算目标区内道路网的密度.(数据框1) 3.主观题(20分)对roadnet里 ...

  9. web note

    web note html note 列表 ul 无序列表 ol 有序列表 并且可以通过 type 来定义列表序号的形式 <!DOCTYPE html> <html> < ...

  10. Docker安装与基本命令

    docker安装 Ubuntu 更新apt包索引 sudo apt-get update 更新apt包索引 sudo apt-get upgrade 安装docker sudo apt-get ins ...