StringJoiner 是 Java 8 引入的一个工具类,用于方便、高效地构建分隔的字符串序列。它提供了灵活的方式来指定分隔符、前缀和后缀,并允许逐个添加元素或批量添加集合元素来生成最终的字符串。以下是 StringJoiner 的主要用法说明:
1. 创建 StringJoiner 实例
创建一个 StringJoiner 对象时,可以指定以下参数:
delimiter:分隔符,即各元素之间的字符串。例如逗号 , 或冒号 :。
prefix(可选):前缀,即所有元素之前添加的字符串。例如左方括号 [ 或双引号 " "。
suffix(可选):后缀,即所有元素之后添加的字符串。例如右方括号 ] 或双引号 "。
StringJoiner joiner = new StringJoiner(", ", "[", "]");
上述代码创建了一个使用逗号作为分隔符、左方括号作为前缀、右方括号作为后缀的 StringJoiner。
2. 添加元素
使用 add() 方法逐个添加字符串元素:
joiner.add("apple");
joiner.add("banana");
joiner.add("cherry");
或者使用 addAll() 方法批量添加来自集合(如 List)的元素:
List<String> fruits = Arrays.asList("orange", "kiwi", "pineapple");
joiner.addAll(fruits);
3. 获取结果字符串
调用 toString() 方法获取经过分隔和封装的最终字符串:
String result = joiner.toString();
4. 示例
将上述步骤整合到一个完整的示例中:
import java.util.List;
import java.util.Arrays;
import java.util.StringJoiner;
public class StringJoinerExample {
public static void main(String[] args) {
StringJoiner joiner = new StringJoiner(", ", "[", "]");
joiner.add("apple");
joiner.add("banana");
joiner.add("cherry");
List<String> moreFruits = Arrays.asList("orange", "kiwi", "pineapple");
joiner.addAll(moreFruits);
String joinedString = joiner.toString();
System.out.println(joinedString); // 输出:[apple, banana, cherry, orange, kiwi, pineapple]
}
}
5. 特性与注意事项
空值处理:如果添加的元素为 null,StringJoiner 会将其视为空字符串("")处理。
空字符串与空结果:如果未添加任何元素,或者添加的所有元素都是空字符串,toString() 返回的结果将是空字符串加上前缀和后缀(如果提供了的话)。例如,new StringJoiner(",", "[", "]").toString() 将返回 "[]"。
线程安全:StringJoiner 类是线程安全的,可以在多线程环境中安全使用。
通过 StringJoiner,您可以轻松构建诸如 CSV 格式的字符串、JSON 数组中的字符串列表等,无需手动拼接和处理边界条件,提高了代码的可读性和效率。