目录

StringUtils.join() 实现

pom依赖

api说明

代码实现

String.join() 实现

pom依赖

api说明

代码实现

两种实现方式对比


你也许遇到过将数组或集合以某“,”、“-”、“.”等拼接字符拼接成新的字符串的需求,拼接后的字符串将会是这样  a,b,c 或者 a-b-c 或者 a.b.c 等。

你可能会想遍历拼接,去除掉最后一个拼接字符。

public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));StringBuilder stringBuilder = new StringBuilder();for (String s : list) {stringBuilder.append(s + ",");}System.out.println(stringBuilder.substring(0, stringBuilder.length() - 1));
}

或者会想着先遍历,数组的最后一个元素单独处理。

public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < list.size() -1 ;i ++) {stringBuilder.append(list.get(i) + ",");}System.out.println(stringBuilder.append(list.get(list.size() - 1)).toString());
}

以上两种方法要么处理最后一个拼接的特殊字符、要么需要对最后一个字符单独处理,都不是特别优雅,那咱这块有没有优雅的实现方式呢。别说,还真有两种实现方式。

StringUtils.join() 实现

pom依赖

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.11</version>
</dependency>

api说明

代码实现

public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));System.out.println(StringUtils.join(list, ","));
}

String.join() 实现

pom依赖

String.join() 是 JDK8 新增方法,不需要引入外部依赖。

api说明

代码实现

public static void main(String[] args) {List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"}));System.out.println(String.join(",", list));
}

StringUtils.join 和 String.join() 两者都是一行代码就搞定了,是不是很优雅呢?

两种实现方式对比

参数顺序:StringUtils.join() 第一个参数是数组或者集合,第二个参数是拼接字符;String.join() 第一个参数是拼接字符,第二个参数数组或者集合。

参数范围:StringUtils.join() 可以传入 Integer 或者其他类型的集合或数组; String.join() 尽可以传入实现 charSequence 接口类型的集合或数组。

对比总结:如果是字符串类型的集合或数组建议使用 String.join(),其他类型建议使用 StringUtils.join()。

String.join()和StringUtils.join()优雅解决数组或者集合拼接相关推荐

  1. 集合转数组 数组转集合

    数组集合转换 数组变字符串 int[] arr = {4,1,8,5,3,5}; System.out.println(Arrays.toString(arr));//[4,1,8,5,3,5] 1. ...

  2. StringUtils.join的用法

    示例: // 集合List<String> orderNoList = new ArrayList<>();orderNoList.add("111");o ...

  3. StringUtils.join的详解---LPF

    StringUtils.join()和String.join()用途:将数组或集合以某拼接符拼接到一起形成新的字符串. public static void main(String[] args) { ...

  4. clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原创)

    clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原创) 参考文章: (1)clickhouse 复杂查询时嵌套连接join可能存在的异常解决(xjl456852原 ...

  5. SpringBoot 2.x 优雅解决分布式限流

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 9 分钟. 来自:blog.csdn.net/johnf_nash/article/details/89791808 某天A君 ...

  6. php中join用法,PHP join()函数用法与实例讲解

    PHP join() 函数 实例 把数组元素组合为一个字符串: $arr = array('Hello','World!','Beautiful','Day!'); echo join(" ...

  7. 1.19.5.4.流上的Join、常规Join、时间区间Join、时态表Join、基于处理时间的时态Join、时态表函数Join、用法

    1.19.5.4.流上的Join 1.19.5.4.1.常规Join 1.19.5.4.2.时间区间Join 1.19.5.4.3.时态表Join 1.19.5.4.4.基于处理时间的时态Join 1 ...

  8. MR实现reduce join和map join及hive的执行计划

    一.涵盖 MapReduce InputFormat RecordReader 切片:block=input split 1.1 File- Text- NLine- DB- Mapper setup ...

  9. mysql的left join和inner join的效率对比,以及如何优化

    一.前言 最近在写代码的时候,遇到了需要多表连接的一个问题,初始sql类似于: select * from a left join b on a.x = b.x left join c on c.y ...

最新文章

  1. oracle startup mount nomount 区别
  2. kernel: make tags 时的告警修改
  3. linux命令uname
  4. 大数据实训记录(二)
  5. java temporalfield_Java Year isSupported(TemporalField)用法及代码示例
  6. 华为2014校园招聘的机试题目
  7. php 秒杀并发怎么做,PHP实现高并发下的秒杀功能–Laravel
  8. 如何使WordPress博客添加多个sidebar侧边栏
  9. 互联网晚报 | 3月26日 星期六 |​ 竞拍规则优化,部分城市土地市场有所回暖;​​武汉房贷利率下调...
  10. form表单间接提交方法
  11. CF 132E 费用流
  12. java怎么获取中文首字母_Java如何获取中文拼音首字母的方法介绍
  13. [转]一个计算机专业学生几年的编程经验汇总
  14. 云服务器操作系统新手,云服务器操作系统新手
  15. Unity3D中Update和FixedUpdate、LateUpdate的区别
  16. 微信表情包储服务器,新发现!微信里的表情包,终于能保存到手机和电脑辣!-qq表情在哪个文件夹里...
  17. 【分享】一个电路仿真软件---proteus ISIS
  18. 邻接表拓扑排序算法【C/C++】
  19. SIPP对接fs压力测试
  20. Yate for mac(标记和管理音频文件工具)

热门文章

  1. vue跳转弹出新页面
  2. 如何查看csdn博主所有的文章
  3. IDEA 本地未提交 历史记录
  4. 应用架构B/S与C/S优劣比较(一)
  5. Q宠猪猪伴侣 V2.46 正式版~~ 天空原创软件
  6. 现在计算机大厂985本科是不是难进了?
  7. 民间生活小秘方|怎么戒酒| 怎么戒烟|怎样除去口臭
  8. Acwing.379 捉迷藏(最小路径重复点覆盖)
  9. 【非编系统】手把手教您配置一套非编系统
  10. V8引擎和JS垃圾回收机制的详解