StringJoiner 类与 String.join() 方法在 Java 中连接字符串

javaobject oriented programmingprogramming

在 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 程序中的不同用例示例。


相关文章