Java String split()方法

时间:2020-01-09 10:34:55  来源:igfitidea点击:

Java String split()方法将字符串拆分为给定正则表达式的匹配项。 split()方法返回字符串数组,该数组包含通过将字符串拆分为给定正则表达式的匹配项而计算出的所有单词。

在Java String类中,split()方法有两种变体

String[] split(String regex, int limit) 

String[] split(String regex)

方法参数是

regex –分隔正则表达式

limit – limit参数控制应用图案的次数,它可能具有以下三个值。

  • 如果限制> 0,则图案将最多应用限制-1次。返回的String数组的长度将不超过限制,并且数组的最后一个条目将包含除最后一个匹配的定界符之外的所有输入。
  • 如果limit = 0,则模式将被尽可能多地应用,返回的String数组可以具有任何长度,并且尾随的空字符串将被丢弃。
  • 如果limit <0,则该模式将被尽可能多地应用,并且返回的String数组可以具有任何长度。

Java String split()方法示例

1.使用空格分割定界数据,因为使用" \ s +"正则表达式匹配任意数量的空格。

import java.util.Arrays;

public class SplitString {
  public static void main(String[] args) {
    String str = "A001  BOA Nicki 12000";
    // Matches any number of spaces
    String[] data = str.split("\s+");
    System.out.println(Arrays.toString(data));
  }
}

输出:

[A001, BOA, Nicki, 12000]

2.使用制表符分隔数据。

public class SplitString {
  public static void main(String[] args) {
    String str = "A001	BOA	Nicki	12000";
    String[] data = str.split("\t");
    System.out.println(Arrays.toString(data));
  }
}

输出:

[A001, BOA, Nicki, 12000]

3.分割使用管道(|)分隔的数据。请注意,必须使用转义符()对管道符号进行转义。

public class SplitString {
  public static void main(String[] args) {
    String str = "A001|BOA|Nicki|12000";
    String[] data = str.split("\|");
    // Accessing name field
    System.out.println("Name- "+ data[2]);
  }
}

输出:

Name- Nicki

4.使用split()方法拆分逗号分隔值(CSV)。

public class SplitString {
  public static void main(String[] args) {
    String str = "A001,BOA,Nicki,12000";
    String[] data = str.split(",");
    for(String s : data)
      System.out.println(s);
  }
}

输出:

A001
BOA
Nicki
12000

5.使用带有限制参数的split()方法。

public class SplitString {
  public static void main(String[] args) {
    String str = "A001,BOA,Nicki,12000";
    String[] data = str.split(",", 2);
    for(String s : data)
      System.out.println(s);
  }
}

输出:

A001
BOA,Nicki,12000

由于limit的值为2,仅将模式应用1次(limit – 1)次。数组的最后一个条目包含除最后一个匹配的定界符之外的所有输入。