如何在 Java 中将字符串拆分成数组

Hassan Saeed 2023年10月12日
  1. Java 中使用 split(delimiter) 将字符串拆分为数组
  2. Java 中使用 split(regex, limit) 将字符串拆分为一个数组并保留尾部的空字符串
如何在 Java 中将字符串拆分成数组

本教程讨论了在 Java 中将字符串分割为数组的方法。

假设我们有一个逗号分隔的字符串 John, 23, $4500。我们需要根据逗号拆分数据,并将其存储在像这样的数组中:["John", '23', "$4500"]。这时 split() 方法就派上用场了。

Java 中使用 split(delimiter) 将字符串拆分为数组

我们需要传递定界符,根据定界符来分割字符串。split() 方法会在每一个定界符出现时将字符串拆分,并将每个值存储在数组中。下面的例子说明了这一点。

public class MyClass {
  public static void main(String args[]) {
    String data = "1,2,3,,5,6,,";
    String[] split = data.split(",");
    for (int i = 0; i < split.length; i++) System.out.println(split[i]);

    System.out.println("Done");
  }
}

输出:

1
2
3

5
6

虽然我们在最后有两个空字符串,但生成的数组并不包含最后两个空字符串。这是因为 split() 的默认行为从结果数组中删除了所有尾部的空字符串。

Java 中使用 split(regex, limit) 将字符串拆分为一个数组并保留尾部的空字符串

我们可以通过向 split() 函数传递一个额外的参数来覆盖这种行为:split(regex, limit)。传递一个负的 limit 将确保 regex 模式被尽可能多地应用,从而包括所有分割后的空字符串。

下面的例子说明了这一点。

public class MyClass {
  public static void main(String args[]) {
    String data = "1,2,3,,5,6,,";
    String[] split = data.split(",", -1);
    for (int i = 0; i < split.length; i++) System.out.println(split[i]);

    System.out.println("Done");
  }
}

输出:

1
2
3

5
6


Done

我们可以看到,现在它已经打印了最后两个尾部的空字符串。

相关文章 - Java String