在Java中字符串拼接是日常开发的高频操作,传统的拼接方式往往需要处理分隔符的添加、首尾特殊字符的拼接,代码逻辑容易变得繁琐。StringJoiner是Java 8引入的java.util包下的工具类,专门用于解决带分隔符的字符串拼接问题,支持自定义分隔符、前缀和后缀,能够大幅简化拼接逻辑。

StringJoiner核心构造方法
StringJoiner提供了两个常用的构造方法,开发者可以根据是否需要前缀和后缀来选择使用:
- StringJoiner(CharSequence delimiter):仅指定分隔符,拼接后的字符串不会有前后缀
- StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix):指定分隔符、前缀和后缀,拼接后的字符串会自动添加指定的前后缀
常用方法说明
StringJoiner的核心方法不多,使用起来非常简单:
| 方法名 | 作用说明 |
|---|---|
| add(CharSequence newElement) | 向拼接器中添加一个元素,元素之间会自动插入分隔符 |
| merge(StringJoiner other) | 合并另一个StringJoiner的内容到当前拼接器中,合并时会保留当前拼接器的分隔符、前缀和后缀 |
| length() | 返回当前拼接后字符串的长度,包含前缀、后缀和分隔符 |
| toString() | 返回拼接完成的字符串结果 |
基础使用示例
下面是一个简单的使用示例,演示如何使用StringJoiner拼接多个字符串:
import java.util.StringJoiner;
public class StringJoinerDemo {
public static void main(String[] args) {
// 创建拼接器,指定分隔符为逗号
StringJoiner joiner = new StringJoiner(",");
// 添加元素
joiner.add("Java");
joiner.add("Python");
joiner.add("Go");
// 输出结果:Java,Python,Go
System.out.println(joiner.toString());
// 创建带前缀和后缀的拼接器
StringJoiner joinerWithFix = new StringJoiner(",", "[", "]");
joinerWithFix.add("苹果");
joinerWithFix.add("香蕉");
joinerWithFix.add("橙子");
// 输出结果:[苹果,香蕉,橙子]
System.out.println(joinerWithFix.toString());
}
}
合并StringJoiner示例
merge方法可以将两个StringJoiner的内容合并,适合拆分拼接的场景:
import java.util.StringJoiner;
public class StringJoinerMergeDemo {
public static void main(String[] args) {
StringJoiner joiner1 = new StringJoiner(",", "[", "]");
joiner1.add("语文");
joiner1.add("数学");
StringJoiner joiner2 = new StringJoiner(",");
joiner2.add("英语");
joiner2.add("物理");
// 合并joiner2到joiner1
joiner1.merge(joiner2);
// 输出结果:[语文,数学,英语,物理]
System.out.println(joiner1.toString());
}
}
与StringBuilder、String.concat对比
传统的字符串拼接方式有多种,和StringJoiner的差异如下:
- 使用
String.concat方法拼接时,需要手动处理分隔符,多个元素拼接时代码冗余度高 - 使用
StringBuilder拼接时,需要额外判断是否为第一个元素来决定是否添加分隔符,逻辑相对复杂 - StringJoiner原生支持分隔符、前后缀配置,无需额外逻辑处理,代码更简洁,可读性更强
需要注意的是,StringJoiner底层其实是基于StringBuilder实现的,所以在性能上和直接使用StringBuilder没有明显差异,但是代码简洁度上有明显优势。
实际开发场景
StringJoiner在以下场景中非常实用:
- 拼接SQL语句的IN条件,比如拼接
id IN (1,2,3)这样的格式 - 拼接接口返回的集合数据,用逗号分隔后返回给前端
- 生成带固定格式的字符串,比如日志内容、配置文件内容等
注意事项
使用StringJoiner时需要注意几个问题:
- 如果添加的元素为null,StringJoiner会直接拼接null字符串,不会做空值处理,需要提前过滤空元素
- 如果拼接器没有添加任何元素,调用toString()方法时,带前后缀的构造会返回前缀+后缀的结果,不带前后缀的构造会返回空字符串
总的来说,StringJoiner是Java中处理带分隔符字符串拼接的高效工具,合理使用可以减少冗余代码,提升代码质量,适合在各类Java项目中推广使用。
StringJoinerJava字符串拼接Java工具类StringBuilder修改时间:2026-06-28 07:48:27