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
以下示例说明了如何连接列表的字符串类型元素。首先,我们将创建一个包含三个值的字符串类型列表“araylist”,然后将其传递给 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 程序中的不同用例示例。