stringjoiner是java 8引入的字符串拼接工具类,核心通过指定分隔符(如“, ”或“|”)创建对象,调用add()添加元素实现自动分隔,支持前缀后缀(如“[”和“]”),并可merge合并或tostring输出,比stringbuilder更安全、比string.join()更灵活。

Java 中用 StringJoiner 拼接带分隔符的字符串非常直接,核心是创建对象时指定分隔符,再逐个添加元素即可,无需手动处理开头或结尾的分隔符。
创建 StringJoiner 并指定分隔符
构造方法 new StringJoiner(delimiter) 是最常用的方式。分隔符可以是任意字符串,比如逗号、空格、竖线等。
-
StringJoiner joiner = new StringJoiner(", ");→ 生成类似"a, b, c" -
StringJoiner joiner = new StringJoiner("|", "[", "]");→ 带前缀和后缀,结果如"[a|b|c]"
添加元素用 add() 方法
调用 add(String) 添加非 null 字符串;null 会被转成字符串 "null"(若不希望这样,需提前判空)。
joiner.add("apple").add("banana").add("cherry");- 链式调用没问题,因为
add()返回自身 - 如果传入空字符串
"",它会被正常加入,不影响分隔符逻辑
合并多个 StringJoiner 或转成字符串
可用 merge(StringJoiner) 合并另一个 joiner 的内容(要求分隔符一致),最终统一用 toString() 获取结果。
-
String result = joiner.toString();→ 得到拼接后的字符串 - 空 joiner 调用
toString()返回空字符串(不是 null) -
merge()会把另一个 joiner 的所有元素追加到当前 joiner 末尾
对比 StringBuilder 和 String.join() 的适用场景
StringJoiner 适合需要动态构建、且明确依赖分隔符逻辑的场景;比手动用 StringBuilder 拼接更安全(不用处理第一个元素不加分隔符的问题);比 String.join() 更灵活(支持前缀/后缀、运行时增删元素)。
- 已知全部元素?用
String.join(",", list)更简洁 - 需要边判断边拼接(比如只拼非空字段)?
StringJoiner更合适 - 要加括号或方括号包裹整体?
StringJoiner构造时传入 prefix/suffix 即可
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











