Java 8 StringJoiner 示例

在 Java8 中,java.util 包中引入了一个新类 StringJoiner。利用这个类,我们可以使用指定分隔符连接多个字符串,还可以为最终字符串添加前缀和后缀。

下边介绍一些 StringJoiner 类的示例。

示例1:通过指定分隔符连接字符串

在这个例子中,我们使用 StringJoiner 连接多个字符串,在创建 StringJoiner 实例时我们将分隔符指定为连字符(-)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.StringJoiner; 

public class Example {
public static void main(String[] args) {
// 传递连字符(-)作为分隔符
StringJoiner mystring = new StringJoiner("-");

// 通过 add() 方法连接多个字符串
mystring.add("张三");
mystring.add("李四");
mystring.add("王五");
mystring.add("赵六");

System.out.println(mystring);
}
}

输出:

1
张三-李四-王五-赵六

示例2:为输出字符串添加前缀和后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.StringJoiner;  

public class Example {
public static void main(String[] args) {
/* 传递逗号(,)作为连字符
* 左括号为前缀右括号为后缀
*/
StringJoiner mystring = new StringJoiner(",", "(", ")");

mystring.add("张三");
mystring.add("李四");
mystring.add("王五");
mystring.add("赵六");

System.out.println(mystring);
}
}

输出:

1
(张三,李四,王五,赵六)

示例3:合并两个 StringJoiner 对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.StringJoiner;

public class Example {
public static void main(String[] args) {
StringJoiner mystring = new StringJoiner(",", "(", ")");

mystring.add("张三");
mystring.add("李四");
mystring.add("王五");
mystring.add("赵六");

System.out.println("First String: " + mystring);

StringJoiner myanotherstring = new StringJoiner("-", "pre", "suff");

myanotherstring.add("小张");
myanotherstring.add("小李");
myanotherstring.add("小王");
myanotherstring.add("小赵");

System.out.println("Second String: " + myanotherstring);

/* 合并两个字符串要注意的是
* 输出字符串将具有第一个字符串的分隔符前缀和后缀
*/
StringJoiner mergedString = mystring.merge(myanotherstring);
System.out.println(mergedString);
}
}

输出:

1
2
3
First String: (张三,李四,王五,赵六)
Second String: pre小张-小李-小王-小赵suff
(张三,李四,王五,赵六,小张-小李-小王-小赵)

在上边的例子中我们学习了 StringJoiner 类的 add()merge() 方法,再来看看这个类的其他方法。

setEmptyValue(),length() 和 toString() 方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.StringJoiner;  

public class Example {
public static void main(String[] args) {

StringJoiner mystring = new StringJoiner(",");

/* 使用 setEmptyValue() 方法可以设置 StringJoiner 实例
* 的默认值如果 StringJoiner 为空并且
* 我们打印它的值就会显示此默认值
*/
mystring.setEmptyValue("这是个默认字符串");

/* 我们还没有向 StringJoiner 添加任何字符串
* 所以这应该显示 StringJoiner 的默认值
*/
System.out.println("Default String: " + mystring);


mystring.add("苹果");
mystring.add("香蕉");
mystring.add("橘子");
mystring.add("猕猴桃");
mystring.add("葡萄");
System.out.println(mystring);

/* StringJoiner 类的 length() 方法返回
* 字符串的长度(StringJoiner 实例中的字符数)
*/
int length = mystring.length();
System.out.println("Length of the StringJoiner: " + length);

/* toString() 方法用于将 StringJoiner
* 实例转换为字符串
*/
String s = mystring.toString();
System.out.println(s);
}
}

输出:

1
2
3
4
Default String: 这是个默认字符串
苹果,香蕉,橘子,猕猴桃,葡萄
Length of the StringJoiner: 15
苹果,香蕉,橘子,猕猴桃,葡萄

参考:

Java 8 – StringJoiner JavaDoc