Java 中数组转字符串

10 Sept 2024 | 5 分钟阅读

在 Java 编程语言中,数组是一种数据结构,它在连续的内存位置中存储相同类型的值。这些值可以通过相应值的索引来访问。而字符串是一个存储字符序列的对象。在某些情况下,我们需要**将数组转换为字符串**。为了实现这一点,Java 提供了 `toString()`、`StringBuilder.append()` 等方法。使用这些方法,我们可以将数组转换为字符串对象。

如何在 Java 中将数组转换为字符串?

考虑以下场景。

如果我们有一个大小为二的数组(例如 `stuname[]`),其中包含学生的姓和名。我们想将此数组转换为单个字符串,在这种情况下,我们可以使用以下方法将数组转换为字符串。

使用 `Arrays.toString()` 方法

`Arrays.toString()` 方法是将数组转换为字符串的常用方法。在 `Arrays.toString()` 方法中,我们传递要转换为字符串的数组名称。结果,该方法以字符串形式返回数组的内容。值用逗号 (,) 分隔,所有这些值都用方括号 ([]) 括起来。

让我们看一个将数组转换为字符串的 Java 程序。

ArrayToString.java

输出

Boolean Array: [true, false, false, true]
Character Array: [a, e, i, o, u]
Double Array: [1.0, 2.0, 3.0, 4.0, 5.0]
Integer Array: [1, 2, 3, 4, 5]
Object Array: [1, 2, 3, 4, 5]

此方法的空间和时间复杂度为 O(n),其中 n 是最终字符串的长度。

使用 `StringBuilder.append(char[])`

我们还可以使用 `StringBuilder.append()` 方法将数组转换为字符串。`java.lang.StringBuilder.append(char[] arr)` 方法是内置方法,它接受数组作为参数,并将数组表示形式转换为字符串。

ArrayToString.java

输出

Vowels
The result after appending = Vowels AEIOU

此方法的空间和时间复杂度为 O(n),其中 n 是最终字符串的长度。

Java Streams API

我们可以使用 Java Stream API 将数组转换为字符串。在 Java 8 及更高版本中,我们有 `String.join()` 方法,该方法通过连接元素并用指定的分隔符分隔它们来创建新字符串。

注意

  • Java Stream API 用于操作对象集合。Stream 是一系列对象,它们支持各种方法(如 map、filter 等),可用于获取所需的结果。
  • 分隔符是定义元素开始或结束的字符或字符集。在连接数组元素以创建字符串时使用此字符,在我们示例中,使用的分隔符是空字符串 ("")。因此,当使用 `Joiner.join()` 方法连接数组的元素时,元素将用空字符串分隔。在此,我们使用空字符串作为分隔符。

ArrayToString.java

输出

ConvertedusingJavaStreams

此方法的空间和时间复杂度为 O(n),其中 n 是最终字符串的长度。

使用 `StringUtils.join()`

我们可以使用 Apache Commons Lang 库中的 `StringUtils` 类的 `StringUtils.join()` 方法将数组转换为字符串。它接受一个数组,连接数组的元素,并返回一个字符串。

ArrayToString.java

输出

This is a tree

此方法的空间和时间复杂度为 O(n),其中 n 是最终字符串的长度。

使用 `Joiner.join()` 方法

我们可以使用 Guava 库提供的 `joiner.join()` 方法在 Java 中将数组转换为字符串,它非常易于使用,我们还可以添加分隔符,在下面的示例中,分隔符是空字符串。

分隔符是定义元素开始或结束的字符或字符集。在连接数组元素以创建字符串时使用此字符,在我们示例中,使用的分隔符是空字符串 ("")。因此,当使用 `Joiner.join()` 方法连接数组的元素时,元素将用空字符串分隔。

ArrayToString.java

输出

import com.google.common.base.Joiner;
public class ArrayToString {
  public static void main(String[] args) {
    // Initialize an array of strings
    String[] arr = { "Apple", "Mango", "Banana", "Orange" };
    // Use the Joiner.on() method from the Guava library 
    // to join the array of strings into a single string
    String str = Joiner.on("").join(arr);
    // Print the result
    System.out.println(str);
  }
}

此方法的空间和时间复杂度为 O(n),其中 n 是最终字符串的长度。