Java中Split函数的用法技巧

java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。

如执行:

1
2
3
4
5
String str = "1|23|4|56|7";
String[] arr = str.split("|");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}

出来的结果是:

1
2
3
4
5
6
7
8
9
10
11
1
|
2
3
|
4
|
5
6
|
7

奇怪吧,不过注意看一下API说明还是知道原因的。

所以正常的写法是这样的:

  • 如果用.作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".")
  • 如果用|作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|")
  • .|都是转义字符,必须得加\\
  • 如果在一个字符串中有多个分隔符,可以用|作为连字符,比如:a=1 and b =2 or c=3,把三个都分隔出来,可以用String.split("and|or")