string.join() 是 java 8 引入的便捷字符串拼接方法,语法简洁、可读性强、线程安全,常用形式为 string.join(delimiter, elements) 或 string.join(delimiter, iterable)。
string.join() 是 java 8 引入的便捷方法,专为字符串拼接设计,无需手动遍历或借助 stringbuilder,语法简洁、可读性强、线程安全。
基本用法:传入分隔符和字符串数组或集合
最常用形式是 String.join(CharSequence delimiter, CharSequence... elements) 或 String.join(delimiter, Iterable extends CharSequence>)。
- 第一个参数是分隔符(可以是空字符串、空格、逗号等)
- 第二个参数支持可变参数(适合数组)或任意
Iterable(如 List、Set) - 元素为
CharSequence类型,包括 String、StringBuilder、CharBuffer 等,但 null 会抛出NullPointerException
示例:
Java开发手册规约集合,基于阿里巴巴Java开发手册(嵩山版)。 涵盖7大维度:编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约。 当用户需要:(1) 编写或审查Java代码 (2) 检查命名/代码规范 (3) 处理异常和日志 (4) 编写单元测试 (5) 安全编码 (6) 数据库设...
String result = String.join(", ", arr); // → "apple, banana, cherry"
处理 List 或其他集合时更灵活
如果已有 List
String joined = String.join("-", list); // → "a-b-c"
- 支持任意实现了
Iterable的集合(ArrayList、LinkedList、HashSet 等) - 注意:HashSet 不保证顺序,拼接结果可能不固定
- 若需过滤 null 或空字符串,需提前处理(
String.join()本身不跳过 null)
常见注意事项与避坑点
- 任意一个元素为
null,运行时抛出NullPointerException;建议先用Objects.toString(obj, "")或流式过滤 - 分隔符本身可以是空字符串(
String.join("", arr)),等效于字符串拼接 - 性能良好:内部使用 StringBuilder 实现,比传统 for 循环 + += 更高效且不易出错
- 不支持自定义格式化(如每个元素加引号),此时应改用
Collectors.joining()配合 Stream
替代方案对比:什么情况下不用 join()?
- 需要对每个元素做转换(如加引号、转大写)→ 用
stream().map(...).collect(Collectors.joining(",")) - 拼接过程中可能有 null 值且不想中断 → 先用
list.stream().filter(Objects::nonNull).collect(...) - 旧版本 Java(StringUtils.join() 或手动 StringBuilder
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










