Java StringJoiner详解

引言

在编程过程中,我们经常需要将多个字符串拼接在一起形成一个新的字符串。在Java中,我们可以使用String类的concat()方法或者使用+运算符来实现字符串的拼接。然而,在某些情况下,我们可能需要更高级的字符串拼接方式,比如在拼接字符串的同时添加分隔符或者前缀后缀等。为了满足这些需求,Java提供了StringJoiner类来简化字符串的拼接操作。

StringJoiner类的概述

StringJoiner类是Java 8中添加的一个工具类,它位于java.util包中。该类提供了一种方便的方式来拼接一系列字符串,并且还可以指定分隔符、前缀和后缀等。

使用StringJoiner

创建StringJoiner对象

要创建一个StringJoiner对象,我们可以使用它的构造函数。该构造函数接受三个参数:分隔符、前缀和后缀。以下是一个创建StringJoiner对象的示例代码:

StringJoiner sj = new StringJoiner(",", "[", "]");

上述代码中,我们创建了一个StringJoiner对象,使用逗号作为分隔符,并在结果字符串的前面添加[,后面添加]

添加字符串

要向StringJoiner对象中添加字符串,我们可以使用它的add()方法。该方法接受一个字符串参数,将其添加到当前字符串的末尾。以下是一个添加字符串的示例代码:

sj.add("apple");
sj.add("banana");
sj.add("orange");

上述代码中,我们向StringJoiner对象中添加了三个字符串:applebananaorange

获取拼接后的字符串

要获取StringJoiner对象中拼接后的字符串,我们可以使用它的toString()方法。以下是一个获取拼接后字符串的示例代码:

String result = sj.toString();

上述代码中,我们通过调用StringJoiner对象的toString()方法来获取拼接后的字符串。

指定分隔符、前缀和后缀

除了在创建StringJoiner对象时指定分隔符、前缀和后缀之外,我们还可以在添加字符串时动态更改它们。StringJoiner类提供了以下三个方法来设置分隔符、前缀和后缀:

  • setEmptyValue(String emptyValue):设置当没有字符串添加到StringJoiner对象时,返回的字符串。
  • setDelimiter(String delimiter):设置分隔符。
  • setPrefix(String prefix):设置前缀。
  • setSuffix(String suffix):设置后缀。

以下是一个使用上述方法的示例代码:

StringJoiner sj = new StringJoiner(",", "[", "]");
sj.add("apple");
sj.add("banana");
sj.setDelimiter("|");
sj.add("orange");
sj.setEmptyValue("No fruits");
String result = sj.toString(); // [apple,banana|orange]

上述代码中,我们首先使用逗号作为分隔符,并在结果字符串的前面添加[,后面添加]。然后,我们向StringJoiner对象中添加了三个字符串,并使用setDelimiter()方法将分隔符更改为|。接下来,我们使用setEmptyValue()方法将没有字符串添加到StringJoiner对象时返回的字符串更改为No fruits。最后,我们通过调用StringJoiner对象的toString()方法来获取拼接后的字符串。

示例

以下是一个完整的示例,展示了如何使用StringJoiner类来拼接字符串:

import java.util.StringJoiner;

public class StringJoinerExample {
    public static void main(String[] args) {
        StringJoiner sj = new StringJoiner(",", "[", "]");
        sj.add("apple");
        sj.add("banana");
        sj.add("orange");

        System.out.println(sj.toString()); // [apple,banana,orange]
    }
}

上述示例代码中,我们创建了一个StringJoiner对象,并向其添加了三个字符串。最后,我们通过调用StringJoiner对象的toString()方法来获取拼接后的字符串,并将其打印输出。