正则表达式字符有:| , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等。
想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 \ 去转义,因转义使用 \, 而这个 \ 正好也是正则表达式的字符,所以还得用一个 \ , 所以需要两个 \\。
- String str="5678|XYZ";
- String[] b = str.split("\\|"); //注意这里用两个 \\,而不是一个\
- System.out.println("处理结果: "+b[0]+","+b[1]); //输出的是: 处理结果: 5678,XYZ
再来看看:
- String str="5678|XYZ";
- String[] b = str.split("|"); //注意直接使用|,该字符是正则表达式的一部分,
- String x="处理结果: ";
- for(int i=0;i<b.length;i++){
- x=x+b[i]+",";
- }
- System.out.println(x); //输出的是: 处理结果: 5,6,7,8,|,X,Y,Z,
正则表达式:
2.数组长度的问题
String a = "";
String[] b = a.split(",");
b.length为 1;
*
String a = "c";
String[] b = a.split(",");
b.length为 1;
**
String a = "c,,,";
String[] b = a.split(",");
b.length为 1;
***
String a = "c,,c";
String[] b = a.split(",");
b.length为 3;
****
String a = ",";
String[] b = a.split(",");
b.length为 0;
例如:
public static void main(String[] args) {
String str = "jing|gege|hello";
String[] str1 = str.split("|");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
}
}
输出结果为:
j
i
n
g
|
g
e
g
e
|
h
e
l
l
o
而下面的代码:
public static void main(String[] args) {
String str = "jing|gege|hello";
String[] str1 = str.split("|");
for (int i = 0; i < str1.length; i++) {
System.out.println(str1[i]);
}
}
输出结果为:
jing
gege
hello