一、引入
在之前我们拼接 1000000
个字符串的时候,用的是字符串直接拼接的方式。这种拼接的方式速度太慢了,因此我们使用 StringBuilder
进行替代,提高了代码的运行速度。
但是 StringBuilder
书写的代码还是比较麻烦的,例如当我们想要将数组拼接成指定字符串的时候就有点慢了。
在循环的开始去拼接左括号,在循环的结束去拼接右括号。在循环的过程中,对中间的 ,
(逗号和空格)还需要做判断
但如果我们想偷个懒,这是程序员的品格,正是因为有这样的品格,程序员才会创造很多很多一劳永逸的方法去解决问题。
那有没有一种拼接速度快,代码又简单的方式呢?这正是我们现在要学习的 StringJoiner
。
我们现在先来体验一下 StringJoiner
。在创建对象的时候我们可以指定中间的间隔符号,用逗号分隔,可以指定开始的符号:左括号,还可以指定结束的符号:右括号,一旦指定完后,在添加元素的时候我们就不需要进行判断了。我们在下面代码遍历到的每一个数组里的元素,直接将它扔给 StringJoiner
就行了。
代码非常简单,最终打印的就是我们想要的效果,所以 StringJoiner
,用起来真的是非常方便
二、StringJoiner
概述
-
StringJoiner跟StringBuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的。
-
作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。
因为它是从JDK8才出现的。他们之前一直在用
StringBuider
用熟了就懒得改了。
三、构造方法
它的构造方法是没有空参的,它有两个带参的构造需要我们掌握。
方法名 | 说明 |
---|---|
public StringJoiner(间隔符号) | 创建一个 StringJoiner 对象,指定拼接时的间隔符号 |
public StringJoiner(间隔符号, 开始符号, 结束符号) | 创建一个 StringJoiner 对象,指定拼接时的间隔符号、开始符号、结束符号 |
四、成员方法
PS:add
目前为止只能添加字符串。
方法名 | 说明 |
---|---|
public StringJoiner add(添加的字符串) | 添加数据,并返回对象本身,因此这里可以使用链式编程 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 返回一个字符串(改字符串就是拼接之后的结果) |
五、代码示例
public StringJoiner(间隔符号)
package com.itheima.stringjoinerdemo;
import java.util.StringJoiner;
public class StringJoinerDemo1 {
public static void main(String[] args) {
//1.创建一个对象,并指定中间的间隔符号
StringJoiner sj = new StringJoiner("---");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
//3.打印结果
System.out.println(sj);//aaa---bbb---ccc
}
}
public StringJoiner(间隔符号, 开始符号, 结束符号)
,可以通过快捷键 ctrl + p 查看所对应的参数。
delimiter
:间隔符号。
prefix
:开始符号。
suffix
:结束符号。
或者你先随便写,然后打印运行拼接后的结果,可以就可以区分出来参数的顺序了。
package com.itheima.stringjoinerdemo;
import java.util.StringJoiner;
public class StringJoinerDemo2 {
public static void main(String[] args) {
//1.创建对象
StringJoiner sj = new StringJoiner(", ","[","]");
//2.添加元素
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
System.out.println(len);//15,PS:sj.length() 求的是字符的个数,除了我们添加的内容以外,还有上面的间隔符号、开始标记、结束标记也是需要算进来的。
//3.打印
System.out.println(sj);//[aaa, bbb, ccc]
String str = sj.toString();
System.out.println(str);//[aaa, bbb, ccc]
}
}
六、总结
1、String:表示字符串的类,定义了很多操作字符串的方法
2、StringBuilder:一个可变的操作字符串的容器。它可以帮助我们快速的去操作字符串。
我们一般会用它的两个功能:拼接字符串、将容器里面的内容进行反转
3、StringJoiner:JDK8出现的一个可变的操作字符串的容器,可以高效,方便的拼接字符串
所以在以后,你在拼接字符串的时候,如果你要指定开始标记、结束标记、中间的间隔符号,此时你可以使用 StringBuilder
。但是 StringBuilder
代码写起来有点麻烦,此时就可以使用 StringJoiner
。