Java字符串拆分

Java String split()方法用于根据提供的正则表达式将字符串拆分为字符串数组。

Java字符串拆分

有时需要在Java中拆分String,例如:拆分CSV文件的数据以获取所有不同的值。

String类提供了两种拆分字符串的方法。

1. public String[] split(String regex)方法

此方法用于根据给定的正则表达式字符串拆分字符串。整个字符串被拆分并以字符串数组的形式返回。此方法是在Java 1.4中引入的。请注意,尾随的空字符串不包含在返回的字符串数组中。下面来看一个简单的java字符串拆分示例 -

String s = "abcaada";
System.out.println(Arrays.toString(s.split("a")));

上面的代码将产生输出为:[,bc,,d]。请注意,最后一个空字符串将从返回的字符串数组中排除。

2. public String[] split(String regex, int limit)方法
当要将字符串拆分为有限数量的字符串时,可使用此java字符串拆分方法。例如,假设有一个String变量,它包含逗号作为分隔符的名称和地址。地址中可以包含逗号。下面给出了这个字符串拆分的示例。

String s = "Haikou,Hainan,China";
String[] data = s.split(",", 2);
System.out.println("Name = "+data[0]); //Haikou
System.out.println("Address = "+data[1]); //Hainan,China

请注意,上面的第一种方法实际上通过limit参数使用0传递来使用第二种方法。

public String[] split(String regex) {
    return split(regex, 0);
}

Java的字符串分割要点

关于java String split()方法的一些要点是:

  • 此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止。数组中的子串按它们在此字符串中出现的顺序排列。
  • 如果正则表达式与输入字符串的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。
  • limit参数控制模式的应用次数,因此会影响结果数组的长度。如果限制n大于零,那么模式将最多应用n-1次,数组的长度将不大于n,并且数组的最后一个条目将包含超出最后一个匹配分隔符的所有输入。
  • 如果n是非正数,那么模式将被应用尽可能多的次数,并且数组可以具有任何长度。
  • 如果n为零,那么模式将被应用尽可能多的次数,数组可以具有任何长度,并且将丢弃尾随的空字符串。

Java String拆分示例
以下是java String split()方法的示例。

import java.util.Arrays;

public class JavaStringSplit {

    /**
     * Java String split example
     * 
     * @param args
     */
    public static void main(String[] args) {
        String line = "Copyright of xuhuhu.com at 2099";

        String[] words = line.split(" ");

        String[] twoWords = line.split(" ", 2);

        System.out.println("String split with delimiter: " + Arrays.toString(words));

        System.out.println("String split into two: " + Arrays.toString(twoWords));

        // 用特殊字符分隔的拆分字符串
        String wordsWithNumbers = "I|am|a|java|developer";

        String[] numbers = wordsWithNumbers.split("\\|");

        System.out.println("String split with special character: " + Arrays.toString(numbers));

    }
}

执行上面示例代码,得到以下结果 -

String split with delimiter: [Copyright, of, xuhuhu.com, at, 2099]
String split into two: [Copyright, of xuhuhu.com at 2099]
String split with special character: [I, am, a, java, developer]

可以使用反斜杠将java正则表达式特殊字符用作普通字符,就像上面的程序中使用了管道(|)特殊字符一样。


上一篇: java中方法重载和方法重写的区别 下一篇:无