Java中使用String.join拼接列表时如何在末尾补加分隔符?
实现方案
方案1:直接追加后缀(最简便)
String.join本身仅在元素间插入分隔符,不会在末尾追加,你可以在拼接完成后直接补一个分号即可,因为你已经通过CollectionUtils.isNotEmpty判断了集合非空,不会出现空字符串开头加分号的异常情况:
if (CollectionUtils.isNotEmpty(itemAttValues)) { return String.join(";", itemAttValues) + ";"; }
方案2:使用Stream收集器指定后缀
如果希望用原生JDK方法一站式实现,可以用Collectors.joining,它支持自定义分隔符、前缀、后缀三个参数:
if (CollectionUtils.isNotEmpty(itemAttValues)) { return itemAttValues.stream() .collect(Collectors.joining(";", "", ";")); }
三个参数依次为:元素间分隔符、整体前缀、整体后缀,这里前缀留空,后缀设为;即可匹配需求。
方案3:借助工具类(如果已引入Guava)
如果项目已经引入Guava库,也可以用Joiner类实现:
if (CollectionUtils.isNotEmpty(itemAttValues)) { return Joiner.on(";").join(itemAttValues) + ";"; } // 如需跳过空元素可调整为: // return Joiner.on(";").skipNulls().join(itemAttValues) + ";";
注意事项
String.join默认会把集合中的null元素转为字符串"null",如果你的业务不允许保留null值,可以提前过滤集合元素后再拼接。
内容的提问来源于stack exchange,提问作者None
相关产品推荐
相关产品推荐

