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

Hassan Saeed 2023年1月30日 2020年10月27日
  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