Java StringJoiner类与String.join()方法连接字符串的方式
有多种方法可以在Java中连接字符串。StringJoiner类和String.join()方法是其中之二。两者都用于连接两个或任意数量的字符串,但它们的实现方式有所不同。
在本文中,我们将尝试找出在使用StringJoiner类和String.join()方法时存在的差异。
StringJoiner类
它是Java.util包中可用的一个类,自JDK 8版本开始添加。我们可以一次连接多个字符串。
在使用之前,需要使用以下命令将其导入到我们的程序中-
import java.util.StringJoiner;
我们可以以两种方式使用这个类−
语法
StringJoiner nameOfinstance = new StringJoiner(" delimiter ");
Or,
StringJoiner nameOfinstance = new StringJoiner(" delimiter ", “ prefix ”, “ suffix ”);
参数
delimiter - 可用于区分不同字符串区域的字符,例如逗号(,),管道符号(|)或冒号(:)。
suffix - 我们可以提供关闭括号。它将被添加到末尾。
prefix - 我们可以提供开放括号。它将被添加到开头。
让我们通过几个示例来讨论。
示例1
在这个示例中,我们将创建一个StringJoiner类的实例’toJoin’以及分隔符,只用于分隔字符串。我们将使用管道符号作为分隔符,并使用该类的add()方法将传递的字符串参数连接到’toJoin’。
import java.util.StringJoiner;
public class Joiner {
public static void main(String []args) {
StringJoiner toJoin = new StringJoiner(" | ");
String st1 = "Tutorials";
String st2 = "Tutorialspoint";
String st3 = "Tutorix";
toJoin.add(st1);
toJoin.add(st2);
toJoin.add(st3);
System.out.println("Concatenated string: " + toJoin);
}
}
输出
Concatenated string: Tutorials | Tutorialspoint | Tutorix
示例2
我们也可以将所有的字符串放在一行中添加。
import java.util.StringJoiner;
public class Joiner {
public static void main(String []args) {
StringJoiner toJoin = new StringJoiner(" | ").add("Tutorials").add("Tutorialspoint").add("Tutorix");
System.out.println("Concatenated string: " + toJoin);
}
}
输出
Concatenated string: Tutorials | Tutorialspoint | Tutorix
示例3
下面的示例说明了后缀和前缀的使用以及分隔符。我们将使用开放和闭合的方括号。
import java.util.StringJoiner;
public class Joiner {
public static void main(String []args) {
StringJoiner toJoin = new StringJoiner(" | ", " [ ", " ] ");
String st1 = "Tutorials";
String st2 = "Tutorialspoint";
String st3 = "Tutorix";
toJoin.add(st1);
toJoin.add(st2);
toJoin.add(st3);
System.out.println("Concatenated string: " + toJoin);
}
}
输出
Concatenated string: [ Tutorials | Tutorialspoint | Tutorix ]
String.join()方法
以下是String.join()方法与StringJoiner类的不同之处:
- String.join()是String类的预定义方法,可在java.lang包中使用。
-
在使用之前不需要导入它,因为默认情况下可供我们使用。
-
不需要像StringJoiner一样创建任何实例,因为它是一个方法。
-
它只接受分隔符作为参数。
-
它可以与字符串、字符串数组和集合接口一起使用。
语法
String nameOfvariable = String.join(" delimiter ", " val1 ", " val2 ");
Or,
String nameOfvariable = String.join(" delimiter ", nameOflist);
参数
delimiter - 逗号(,
)、管道符(|
)或冒号(:
)等可以用于区分不同字符串区域的字符。
val - 要添加的值。
nameOflist - 如果我们有单独的字符串数组或字符串列表,则将其传递给它而不带引号。
示例1
在这个示例中,我们将创建一个字符串变量’toJoin’,它将存储来自String.join() 方法的结果。我们将使用逗号作为分隔符。
public class Joiner {
public static void main(String[] args) {
String toJoin = String.join(" , ", "Tutorials", "Tutorialspoint", "Tutorix");
System.out.print("Concatenated string: " + toJoin);
}
}
输出
Concatenated string: Tutorials , Tutorialspoint , Tutorix
示例2
以下示例说明了如何加入列表的字符串类型元素。首先,我们将创建一个包含三个字符串类型值的列表’arraylist’,然后将其传递给String.join()方法来连接所有元素。
import java.util.*;
public class Joiner {
public static void main(String []args) {
ArrayList<String> araylist = new ArrayList<String>();
araylist.add("Tutorials");
araylist.add("Tutorialspoint");
araylist.add("Tutorix");
String toJoin = String.join(" , ", araylist);
System.out.print("Concatenated string: " + toJoin);
}
}
输出
Concatenated string: Tutorials , Tutorialspoint , Tutorix
结论
在本文中,我们区分了StringJoiner类和String.join()方法。一个是类,另一个是内置方法。我们已经看到了它们在java程序中不同用例的示例。