📜  字符串到 int 数组 - Java (1)

📅  最后修改于: 2023-12-03 15:25:02.943000             🧑  作者: Mango

将字符串转换为 int 数组 - Java

在 Java 中,将字符串转换为 int 数组是一个常见的操作。这在许多编程任务中都是必要的,例如处理传输协议或文件格式。本文将介绍将字符串转换为 int 数组的几种方法。

使用 Java 8 中的 Stream

Java 8 引入了 stream API,可以轻松地将字符串转换为 int 数组。以下是示例代码:

String str = "1 2 3 4 5"; 
int[] arr = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();

在这个示例中,我们首先将字符串分隔成单词数组,然后使用 mapToInt() 转换每个字符串为 int,最后使用 toArray() 将结果收集到 int 数组中。

使用 Apache Commons Lang 库

如果你使用 Apache Commons Lang 库,那么将字符串转换为 int 数组非常简单。以下是示例代码:

String str = "1,2,3,4,5";
int[] arr = ArrayUtils.toPrimitive(Arrays.stream(str.split(",")).map(Integer::valueOf).toArray(Integer[]::new));

在这个示例中,我们首先将字符串分隔成单词数组,然后使用 map() 将每个字符串转换为 Integer 对象,最后使用 toArray() 将结果作为 Integer 数组收集。最后,我们使用 toPrimitive() 将 Integer 数组转换为 int 数组。

使用 Splitter 类

Guava 库提供了一个 Splitter 类,可用于将字符串分成许多小部分,并提供将这些部分转换为 int 数组的方法。以下是示例代码:

String str = "1,2,3,4,5";
int[] arr = Splitter.on(",").trimResults().splitToList(str).stream().mapToInt(Integer::parseInt).toArray();

在这个示例中,我们首先使用 Splitter 将字符串拆分为列表,然后将每个字符串转换为 int 并将结果作为 int 数组收集。

Java 8 之前的方法

在 Java 8 之前,将字符串转换为 int 数组需要一些手动操作。以下是示例代码:

String str = "1 2 3 4 5";
String[] strs = str.split(" ");
int[] arr = new int[strs.length];
for (int i = 0; i < strs.length; i++) {
    arr[i] = Integer.parseInt(strs[i]);
}

在这个示例中,我们首先将字符串拆分为单词数组,然后使用 for 循环将每个字符串转换为 int 并将结果收集到 int 数组中。

结论

我们已经介绍了将字符串转换为 int 数组的不同方法,其中一些使用了 Java 8 中的 Stream 和 Guava 库,而其他则需要较多的手动操作。在选择实现方法时,我们应该考虑性能、可读性和易用性。

希望您能够在实际开发中得到帮助!