# Java 8 – 连接字符串数组 – 将数组转换为字符串

> 原文： [https://howtodoinjava.com/java8/java-8-join-string-array-example/](https://howtodoinjava.com/java8/java-8-join-string-array-example/)

Java 示例**连接字符串数组**以产生单个 String。 此代码可用于**将数组转换为 Java 中的字符串**。 在开发期间，特别是在从 JSON 或 XML 解析内容时，我们可能会多次需要此信息。

## 1\. 连接字符串数组 – Java 8 `String.join()`

`String.join()`方法具有两种**重载**形式。

#### 连接多个字符串参数

此方法采用可变参数格式的所有字符串，并且所有字符串均作为方法中的参数传递。 通过附加由参数分隔符分隔的所有字符串来接收返回字符串。

```java
String join(CharSequence delimiter, CharSequence... elements)

```

此方法可用于连接尚未以集合或数组形式出现的多个字符串。

```java
String joinedString = String.join(", ", "How", "To", "Do", "In", "Java");
System.out.println(joinedString);

Output:

How, To, Do, In, Java

```

#### 连接数组或字符串列表

```java
String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)

```

此方法用于连接字符串的**数组或字符串**的**列表**。

**Java 程序连接字符串列表**

```java
List<String> strList = Arrays.asList("How", "To", "Do", "In", "Java");

String joinedString = String.join(", ", strList);

System.out.println(joinedString);

Output:

How, To, Do, In, Java

```

**Java 程序连接字符串数组**

```java
String[] strArray = { "How", "To", "Do", "In", "Java" };

String joinedString = String.join(", ", strArray);

System.out.println(joinedString);

Output:

How, To, Do, In, Java

```

## 2\. Java 8 `StringJoiner`用于格式化输出

使用`StringJoiner`类，我们可以生成**格式的连接字符串输出**。 在使用 **lambda 收集器**时，这特别有用。

#### 2.1 方法语法

它的构造器采用三个参数 – `delimiter`（必需），以及可选的`prefix`和`suffix`。

```java
StringJoiner(CharSequence delimiter)
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

```

#### 2.2 `StringJoiner`示例

使用与以上示例类似的输入来运行示例，以**连接多个字符串**。 我们想要将输出格式化为`[How, To, Do, In, Java]`，然后可以使用以下代码：

```java
StringJoiner joiner = new StringJoiner(", ", "[", "]");

joiner.add("How")
		.add("To")
		.add("Do")
		.add("In")
		.add("Java");

Output:

[How, To, Do, In, Java]

```

## 3\. 使用`Collectors.joining()`的字符串列表

在使用 **Java 8 lambda** 时，我们可以使用`Collectors.joining()`将列表转换为字符串**。

```java
List<String> numbers = Arrays.asList("How", "To", "Do", "In", "Java");

String joinedString = 	numbers
						.stream()
						.collect(Collectors.joining(", ","[","]"));

System.out.println(joinedString);

Output:

[How, To, Do, In, Java]

```

## 4\. 使用`StringUtils.join()`连接字符串数组

Commons Langs 库的`StringUtils`类具有几种`join()`方法，可用于将数组或字符串列表组合为单个字符串。

#### 4.1 Maven 依赖

```java
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>

```

#### 4.2 `StringUtils.join()`示例

参见给出的例子。 首先，我们将*与空字符串*连接在一起。 在第二个示例中，我们将*与逗号*连接在一起。

```java
String[] strArray = { "How", "To", "Do", "In", "Java" };

String joinedString = StringUtils.join(strArray);
System.out.println(joinedString);

String joinedString2 = StringUtils.join(strArray, ", ");
System.out.println(joinedString2);

Output:

HowToDoInJava
How, To, Do, In, Java

```

使用上面给出的示例在 Java 中**连接到字符串数组**。

学习愉快！

参考：

[Java 8 `String`文档](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-)

[`StringJoiner` JavaDoc](https://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html)

[Apache Commons `StringUtils`文档](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#join(java.lang.Object[],%20java.lang.String))