StringJoiner核心是设定分隔符、可选前后缀、逐个添加,比手动拼接安全、比StringBuilder语义明确;支持prefix/suffix、merge合并及Stream中Collectors.joining()集成。

在Java中如何利用StringJoiner拼接字符串_Java字符串拼接工具讲解

Java中用StringJoiner拼接字符串,核心是“设定分隔符、可选前后缀、逐个添加”,它比手动拼接更安全,比StringBuilder更语义明确,尤其适合带分隔符的列表组装。

基础用法:指定分隔符,添加元素

StringJoiner必须传入分隔符(如",")才能创建,之后调用add()追加非空字符串,自动插入分隔符:

示例:

StringJoiner sj = new StringJoiner(",");
sj.add("apple").add("banana").add("cherry");
System.out.println(sj.toString()); // 输出:apple,banana,cherry

注意:add(null)会抛出NullPointerException;空字符串""是合法的,会被正常加入。

支持前后缀:生成带括号或引号的格式

构造时可额外传入prefixsuffix,适用于生成JSON数组片段、SQL IN列表等场景:

示例(生成SQL in子句):

StringJoiner sj = new StringJoiner(",", "(", ")");
sj.add("'a'").add("'b'").add("'c'");
System.out.println(sj.toString()); // 输出:('a','b','c')

合并多个StringJoiner:复用已有结果

merge(StringJoiner other)可把另一个StringJoiner的内容“并入”当前对象,要求两者分隔符、前后缀完全一致,否则行为未定义(实际可能拼错):

示例:

StringJoiner sj1 = new StringJoiner("-", "[", "]");
sj1.add("x").add("y");

StringJoiner sj2 = new StringJoiner("-", "[", "]");
sj2.add("z");

sj1.merge(sj2);
System.out.println(sj1.toString()); // 输出:[x-y-z]

与Collectors.joining()配合流式处理

在Stream中,常用Collectors.joining()——它底层就是基于StringJoiner实现的:

示例:

List<String> list = Arrays.asList("one", "two", "three");
String result = list.stream()
    .map(String::toUpperCase)
    .collect(Collectors.joining("-", "{", "}"));
// 输出:{ONE-TWO-THREE}

基本上就这些。StringJoiner轻量、不可变(add后返回this,但自身状态改变)、线程不安全,日常拼接够用,无需过度封装。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。