StringJoiner简介与基本使用
一、简介
StringJoiner是Java 8引入的一个实用类,用于将多个字符串按照指定的分隔符、前缀和后缀拼接成一个完整的字符串。它简化了字符串拼接的过程,特别是在需要拼接的字符串数量不确定或需要指定格式时,StringJoiner提供了更为便捷和易读的方式。
二、基本使用
-
创建StringJoiner对象
StringJoiner提供了两个构造函数:-
只指定分隔符:
java复制代码 StringJoiner joiner = new StringJoiner(",");这将创建一个使用逗号作为分隔符的
StringJoiner对象,前缀和后缀默认为空字符串。 -
指定分隔符、前缀和后缀:
java复制代码 StringJoiner joiner = new StringJoiner(",", "[", "]");这将创建一个使用逗号作为分隔符、方括号作为前缀和后缀的
StringJoiner对象。
-
-
添加字符串
使用
add()方法可以向StringJoiner中添加字符串。该方法支持链式调用,即可以连续调用多个add()方法。java复制代码 joiner.add("apple"); joiner.add("orange"); joiner.add("banana"); -
获取拼接后的字符串
使用
toString()方法可以将StringJoiner对象中的字符串按照指定的格式拼接成一个完整的字符串。java复制代码 String result = joiner.toString();以上代码将输出:
[apple,orange,banana] -
处理空值
默认情况下,如果
StringJoiner中没有添加任何字符串,调用toString()方法将返回前缀和后缀的组合(如果指定了前缀和后缀)。如果希望在StringJoiner为空时返回特定的字符串,可以使用setEmptyValue()方法。java复制代码 joiner.setEmptyValue("No fruits");此时,如果
StringJoiner中没有添加任何字符串,调用toString()方法将返回"No fruits"。 -
合并StringJoiner
使用
merge()方法可以将另一个StringJoiner的内容合并到当前StringJoiner中。合并时,不会添加前缀和后缀,只添加内容。java复制代码 StringJoiner joiner1 = new StringJoiner(","); joiner1.add("apple"); joiner1.add("orange"); StringJoiner joiner2 = new StringJoiner(","); joiner2.add("banana"); joiner2.add("grape"); joiner1.merge(joiner2);此时,
joiner1的内容将变为:apple,orange,banana,grape
三、示例代码
以下是一个完整的示例,演示了StringJoiner的基本使用:
java复制代码
import java.util.StringJoiner;
public class StringJoinerExample {
public static void main(String[] args) {
// 创建StringJoiner对象,指定分隔符、前缀和后缀
StringJoiner joiner = new StringJoiner(",", "[", "]");
// 添加字符串
joiner.add("apple");
joiner.add("orange");
joiner.add("banana");
// 获取拼接后的字符串
String result = joiner.toString();
System.out.println("拼接结果: " + result); // 输出: [apple,orange,banana]
// 处理空值
StringJoiner emptyJoiner = new StringJoiner(",");
emptyJoiner.setEmptyValue("No fruits");
System.out.println("空值处理: " + emptyJoiner.toString()); // 输出: No fruits
// 合并多个StringJoiner
StringJoiner joiner1 = new StringJoiner(",");
joiner1.add("apple");
joiner1.add("orange");
StringJoiner joiner2 = new StringJoiner(",");
joiner2.add("banana");
joiner2.add("grape");
joiner1.merge(joiner2);
System.out.println("合并结果: " + joiner1.toString()); // 输出: apple,orange,banana,grape
}
}
四、注意事项
- 分隔符设置后不可修改:一旦创建了
StringJoiner对象并指定了分隔符,就无法修改分隔符。 - 连续空值会被保留占位:如果向
StringJoiner中添加null值,拼接后的字符串中将包含null字符串,而不是忽略它。因此,在添加元素前需要进行空值检查。 - 多线程环境要加锁保护:虽然
StringJoiner不是线程安全的,但在多线程环境中使用时可以通过加锁来保护共享的StringJoiner对象。