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

更新于: 2023年5月5日

543 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告