StringJoiner
在日常开发中,我们经常需要把一组字符串拼接起来,比如把 [“apple”, “banana”, “cherry”] 拼成 “apple,banana,cherry”。
最原始的方式是用 + 或者 StringBuilder 循环拼接,但这种写法又长又容易出错。
从 Java 8 开始,JDK 为我们提供了一个专门的类:StringJoiner。它不仅能让代码更简洁,还能轻松加上分隔符、前缀和后缀。
1.StringJoiner的基本用法
构造方法:
// 有参构造
StringJoiner sj = new StringJoiner(delimiter);
// 添加前缀和后缀
StringJoiner sj = new StringJoiner(delimiter, prefix, suffix);
delimiter
:分隔符,用于把元素隔开
例子:
public class Demo1 {public static void main(String[] args) {// add() 方法会自动在元素之间加上逗号和空格。StringJoiner sj = new StringJoiner(", ");sj.add("apple");sj.add("banana");sj.add("cherry");System.out.println(sj); // 输出: apple, banana, cherry}
}// 一行就能实现原来需要手写括号的功能StringJoiner sj = new StringJoiner(", ", "[", "]");sj.add("apple").add("banana").add("cherry");System.out.println(sj); // 输出: [apple, banana, cherry]
2.StringJoiner的成员方法
(1) add()
作用:向 StringJoiner 添加一个新的字符串元素。
返回值:返回当前对象本身(支持链式调用)。
例子:
StringJoiner sj = new StringJoiner(", ");
sj.add("apple").add("banana");
System.out.println(sj); // apple, banana
(2) length()
作用:返回当前 StringJoiner 拼接后字符串的长度(字符数)。
用途:如果想做长度校验,这个方法很有用。
例子:
StringJoiner sj = new StringJoiner(",");
sj.add("abc").add("de");
System.out.println(sj.length()); // 输出: 6 (abc,de)
(3) merge()
作用:把另一个 StringJoiner 的内容合并到当前对象中。
注意:保留当前对象的前缀、后缀和分隔符。
例子:
StringJoiner sj1 = new StringJoiner(", ", "[", "]");
sj1.add("a").add("b");StringJoiner sj2 = new StringJoiner(", ");
sj2.add("c").add("d");sj1.merge(sj2);
System.out.println(sj1); // [a, b, c, d]
(4) setEmptyValue()
作用:设置当 StringJoiner 为空时,调用 toString() 的返回值。
默认行为:如果不设置,空 StringJoiner 的 toString() 返回 prefix + suffix。
例子:
StringJoiner sj = new StringJoiner(", ", "[", "]");
System.out.println(sj); // 输出: []sj.setEmptyValue("空集合");
System.out.println(sj); // 输出: 空集合
(5) toString()
作用:返回拼接好的完整字符串。
注意:即使 StringJoiner 为空,它也会返回前缀+后缀,除非用过 setEmptyValue()。