StringJoiner 类与 String.join() 方法在 Java 中连接字符串
在 Java 中,有许多连接字符串的方法。StringJoiner 类和 String.join() 方法是其中两种。两者都用于连接两个或任意数量的字符串,但区别在于它们的实现。
在本文中,我们将尝试找出 StringJoiner 类和 String.join() 方法用法中的差异。
StringJoiner 类
它是 java.util 包中可用的类,它是从 JDK 8 添加的。我们可以一次连接多个字符串。
使用前,需要使用以下命令将其导入我们的程序中 -
import java.util.StringJoiner;
我们可以通过两种方式使用此类 -
语法
StringJoiner nameOfinstance = new StringJoiner(" delimiter "); 或者, StringJoiner nameOfinstance = new StringJoiner(" delimiter ", " prefix ", " suffix ");
参数
delimiter - 逗号 (,)、管道符号 (|) 或冒号 (:) 等字符,可用于区分不同字符串的区域。
后缀 - 我们可以提供右括号。它将被添加到末尾。
前缀 - 我们可以提供左括号。它将被添加到开头。
让我们通过几个例子来讨论。
示例 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 "); 或者, String nameOfvariable = String.join(" delimiter ", nameOflist);
参数
分隔符 − 逗号 (,)、管道符号 (|) 或冒号 (:) 等字符,可用于区分不同字符串的区域。
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 程序中的不同用例示例。