Java中Collectors.joining()拼接字符串的核心是调用带分隔符参数的重载方法,常用joining(", ")等;进阶支持前缀后缀如joining(", ", "[", "]");需确保元素非null或提前过滤处理。

Java中用Collectors.joining()拼接字符串并添加分隔符,核心是调用带参数的重载方法:Collectors.joining(CharSequence delimiter)。
基础用法:只传分隔符
最常用的方式是传入一个字符串作为分隔符,它会把流中每个元素转换为字符串后,用该分隔符连接:
-
Collectors.joining(", ")→ 元素间插入逗号加空格 -
Collectors.joining("|")→ 用竖线分隔 -
Collectors.joining("")→ 无分隔符(等价于joining())
进阶用法:前后加前缀和后缀
如果还需要统一加开头和结尾,用三参数版本:joining(delimiter, prefix, suffix):
-
Collectors.joining(", ", "[", "]")→ 结果形如[a, b, c] -
Collectors.joining(" | ", "<ul>", "</ul>")→ 生成简单HTML列表结构
注意元素类型必须可转为字符串
joining()内部会调用每个元素的toString()。如果流中含null,会抛NullPointerException:
立即学习“Java免费学习笔记(深入)”;
- 安全做法:提前过滤掉
null,例如.filter(Objects::nonNull) - 或用
map统一处理,比如.map(x -> x == null ? "" : x.toString())
常见组合场景示例
比如把用户姓名列表拼成“张三, 李四, 王五”:
List<String> names = Arrays.asList("张三", "李四", "王五");String result = names.stream().collect(Collectors.joining(", "));


















