在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技
巧。如执行:
1 String str = "1|23|4|56|7";
2 String[] arr = str.split("|");
3 for (int i = 0; i < arr.length; i++) {
4 System.out.println(arr);
5 }
出来的结果是:
复制代码
1
2 1
3 |
4 2
5 3
6 |
7 4
8 |
9 5
10 6
11 |
12 7
复制代码
奇怪吧,不过注意看一下API说明还是知道原因的。
所以正常的写法是这样的:
如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or")
(责任编辑:未知)