• 把逗号分隔的String字符串转int集合
  • 集合或数组转变为逗号分隔的字符串的几种方式
    • 1、自己编码实现
    • 2、org.apache.commons.lang3.StringUtils
    • 3、StringJoiner, JDK1.8+
    • 4、String.join(), JDK1.8+
    • 5、Stream, Collectors.joining(), JDK1.8+

把逗号分隔的String字符串转int集合

代码通过Java 8 Stream实现起来非常容易!

  1. String ids = "1,2,3,4,5";
  2. List<Integer> idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());

集合或数组转变为逗号分隔的字符串的几种方式

首先,创建一个集合

  1. List<String> list = Lists.newArrayList(null, "bob", "jack");

1、自己编码实现

  1. public static <T> String join(List<T> list, String splitStr) {
  2. if (CollectionUtils.isEmpty(list))
  3. return "";
  4. if (list.size() == 1)
  5. return String.valueOf(list.get(0));
  6. StringBuilder sb = new StringBuilder();
  7. boolean isFirst = true;
  8. for (int i = 0; i < list.size(); i++) {
  9. if (!isFirst) sb.append(splitStr);
  10. sb.append(String.valueOf(list.get(i)));
  11. isFirst = false;
  12. }
  13. return sb.toString();
  14. }
  15. public static <T> String join(T[] array, String splitStr) {
  16. if (ArrayUtils.isEmpty(array))
  17. return "";
  18. if (array.length == 1)
  19. return String.valueOf(array[0]);
  20. StringBuilder sb = new StringBuilder();
  21. boolean isFirst = true;
  22. for (int i = 0; i < array.length; i++) {
  23. if (!isFirst) sb.append(splitStr);
  24. sb.append(String.valueOf(array[i]));
  25. isFirst = false;
  26. }
  27. return sb.toString();
  28. }

输出

null,bob,jack

2、org.apache.commons.lang3.StringUtils

  1. System.out.println(StringUtils.join(list.toArray(), ","));

输出

,bob,jack

3、StringJoiner, JDK1.8+

  1. StringJoiner sj = new StringJoiner(",");
  2. list.forEach(e -> sj.add(String.valueOf(e)));
  3. System.out.println(sj.toString());
  4. // 在连接之前操作字符串, 拼接前缀和后缀
  5. StringJoiner sj2 = new StringJoiner(",", "START_", "_END");
  6. list.forEach(e -> sj2.add(String.valueOf(e)));
  7. System.out.println(sj2.toString());

输出

null,bob,jack
START_null,bob,jack_END

4、String.join(), JDK1.8+

  1. System.out.println(String.join(",", list));

输出

null,bob,jack

5、Stream, Collectors.joining(), JDK1.8+

  1. System.out.println(list.stream().collect(Collectors.joining(",")));
  2. // 在连接之前操作字符串, 拼接前缀和后缀
  3. String str = list.stream().map(e -> {
  4. if (e != null) return e.toUpperCase();
  5. else return "null";
  6. }).collect(Collectors.joining(",", "START_", "_END"));
  7. System.out.println(str);

输出

null,bob,jack
START_null,BOB,JACK_END

把逗号分隔的String字符串转List<Integer>的更多相关文章

  1. java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换

    一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...

  2. redis:string字符串类型的操作

    1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seco ...

  3. java String字符串

      五.java数据类型之String(字符串) CreateTime--2017年7月21日16:17:45 Author:Marydon (一)数据格式 (二)初始化 // 方式一 String ...

  4. [LeetCode] 387. First Unique Character in a String 字符串的第一个唯一字符

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't ex ...

  5. String字符串相关操作

    .length 字符串长度.equals 比较字符串.equalIgnoreCase 比较字符串不区别大小写.charAt 获取字符串指定下标位置的字符.contains 判断字符串内是否包含某字符串 ...

  6. Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

    课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str=& ...

  7. [CareerCup] 1.3 Permutation String 字符串的排列

    1.3 Given two strings, write a method to decide if one is a permutation of the other. 这道题给定我们两个字符串,让 ...

  8. 03-Java String字符串详解

    1.Java字符串String A.实例化String字符串:直接赋值(更合理一些,使用较多).使用关键字new. B.String内容的比较 // TODO Auto-generated metho ...

  9. C++学习38 string字符串的增删改查

    C++ 提供的 string 类包含了若干实用的成员函数,大大方便了字符串的增加.删除.更改.查询等操作. 插入字符串 insert() 函数可以在 string 字符串中指定的位置插入另一个字符串, ...

  10. C++学习37 string字符串的访问和拼接

    访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostrea ...

随机推荐

  1. 国产paozhu c++ web framework 正式版发布

    经过大半个月测试修改 paozhu c++ web framework 正式版发布, 1.0.5 release 官方第一次发布正式版,可以用于生产环境. 易用性 超越国外各种 c++ web fra ...

  2. 【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

    kubernetes进行Killed我们服务的问题背景 无论是在微服务体系还是云原生体系的开发迭代过程中,通常都会以Kubernetes进行容器化部署,但是这也往往带来了很多意外的场景和情况.例如,虽 ...

  3. .Net Core Logging模块源码阅读

    .Net Core Logging模块源码阅读 前言 在Asp.Net Core Webapi项目中经常会用到ILogger,于是在空闲的时候就clone了一下官方的源码库下来研究,这里记录一下. 官 ...

  4. SICP:复数的直角和极坐标的表示(Python实现)

    绪论 我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离.这里的关键是构筑数据抽象屏障--在有 ...

  5. 02安装一个最小化的Hadoop

    安装一个最小化的Hadoop 为了学习HDFS和之后的MapReduce,我们需要安装一个Hadoop. Hadoop一共有3种运行模式 独立模式:不启动守护进程,所有程序运行在一个JVM进程中.独立 ...

  6. DML_添加数据-DML_删除数据

    DML_添加数据 添加数据 语法 : insert into 表名(列名1,列名2,...列名n) values (值1,值2,... 值n); 注意: 1.列名和值要一一对应. 2.如果表名后,不定 ...

  7. Unity打包资源,进行后台加载

    Unity打包资源,进行后台加载 需要项目优化的pa you,这边走:Unity项目优化--Web版 一.前言 因为在下载Three.js,所以趁着这个时间写一下资源打包加载吧 小黑在刚开始学习Uni ...

  8. 使用 NineData 高效编写 SQL

    SQL 是 Structured Query Language 的缩写,中文翻译为"结构化查询语言".它是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 M ...

  9. 12月20日内容总结——ajax补充知识点、多对多外键的三种创建方式、django内置序列化组件、批量操作数据、分页器推导思路与自定义分页器的使用、form组件

    目录 一.ajax补充说明 二.多对多三种创建方式 三.django内置序列化组件(drf前身) 四.批量操作数据 五.分页器思路 六.自定义分页器的使用 七.form组件 forms组件介绍 For ...

  10. 一把梭:REST API 全用 POST(转载)

    一把梭:REST API 全用 POST(转载) 原文链接: https://coolshell.cn/articles/22173.html 写这篇文章的原因主要还是因为V2EX上的这个贴子,这个贴 ...