【java】StringJoiner
StringJoiner
是 Java 8 引入的一个实用类,用于高效地拼接字符串,特别适合需要以特定分隔符连接多个字符串的场景。与 StringBuilder
相比,StringJoiner
更专注于处理带有分隔符的字符串拼接,代码更简洁易读。
下面我会详细介绍 StringJoiner
的基本操作和常用方法。
1. 创建 StringJoiner
对象
StringJoiner
提供了两个构造函数:
1.1 指定分隔符
java
StringJoiner joiner = new StringJoiner(",");
-
创建一个
StringJoiner
对象,使用,
作为分隔符。
1.2 指定分隔符、前缀和后缀
java
StringJoiner joiner = new StringJoiner(",", "[", "]");
-
创建一个
StringJoiner
对象,使用,
作为分隔符,[
作为前缀,]
作为后缀。
2. 常用方法
2.1 添加内容:add()
-
用于向
StringJoiner
中添加字符串。
java
StringJoiner joiner = new StringJoiner(","); joiner.add("Apple"); joiner.add("Banana"); joiner.add("Orange"); System.out.println(joiner.toString()); // 输出: Apple,Banana,Orange
2.2 设置空值处理:setEmptyValue()
-
用于设置当
StringJoiner
中没有内容时返回的字符串。
java
StringJoiner joiner = new StringJoiner(","); joiner.setEmptyValue("No fruits"); System.out.println(joiner.toString()); // 输出: No fruits
2.3 合并多个 StringJoiner
:merge()
-
用于将另一个
StringJoiner
的内容合并到当前StringJoiner
中。
java
StringJoiner joiner1 = new StringJoiner(","); joiner1.add("Apple"); joiner1.add("Banana"); StringJoiner joiner2 = new StringJoiner(","); joiner2.add("Orange"); joiner2.add("Grape"); joiner1.merge(joiner2); // 合并 joiner2 到 joiner1 System.out.println(joiner1.toString()); // 输出: Apple,Banana,Orange,Grape
2.4 获取长度:length()
-
返回当前
StringJoiner
中拼接后的字符串长度。
java
StringJoiner joiner = new StringJoiner(","); joiner.add("Apple"); joiner.add("Banana"); int length = joiner.length(); // 获取长度 System.out.println("长度: " + length); // 输出: 12("Apple,Banana" 的长度)
2.5 转换为字符串:toString()
-
将
StringJoiner
对象转换为String
对象。
java
StringJoiner joiner = new StringJoiner(","); joiner.add("Apple"); joiner.add("Banana"); String result = joiner.toString(); // 转换为 String System.out.println(result); // 输出: Apple,Banana
3. 示例代码
以下是一个完整的示例,演示 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("Banana"); joiner.add("Orange"); // 输出拼接后的字符串 System.out.println("拼接结果: " + joiner.toString()); // 输出: [Apple,Banana,Orange] // 设置空值处理 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("Banana"); StringJoiner joiner2 = new StringJoiner(","); joiner2.add("Orange"); joiner2.add("Grape"); joiner1.merge(joiner2); // 合并 joiner2 到 joiner1 System.out.println("合并结果: " + joiner1.toString()); // 输出: Apple,Banana,Orange,Grape // 获取长度 int length = joiner.length(); System.out.println("长度: " + length); // 输出: 19("[Apple,Banana,Orange]" 的长度) } }
4. 与 StringBuilder
的区别
特性 | StringJoiner | StringBuilder |
---|---|---|
用途 | 专门用于拼接带有分隔符的字符串 | 通用的字符串操作(拼接、插入、删除等) |
分隔符支持 | 支持指定分隔符、前缀和后缀 | 需要手动添加分隔符 |
代码简洁性 | 更简洁,适合处理带分隔符的拼接 | 更灵活,适合复杂的字符串操作 |
性能 | 在特定场景下更高效(如拼接带分隔符的字符串) | 在频繁修改字符串时性能更高 |
5. 总结
-
StringJoiner
是 Java 8 引入的实用类,专门用于拼接带有分隔符的字符串。 -
支持指定分隔符、前缀和后缀,代码简洁易读。
-
适合处理需要以特定格式拼接字符串的场景。