本篇来学习正则里的切割功能。在String类有一个split()的方法,就是一个字符串的切割方法,形式参数就是传入一个正则表达式的字符串。这篇,用一个基本的例子,来学习split()方法,我在做自动化测试的时候, 在Java和Python脚本中都使用过这个方法。
1.根据空格切割
使用了split()方法之后,得到的是一个字符串数组。
package regex;
public class Demo1_Split {
public static void main(String[] args) {
String st = "安东尼科比詹姆斯哈登保罗"; // 每个名字空格隔开
//使用split方法,参数是一个空格的正则表达式
String[] arr= st.split(" ");
for (inti = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
2.根据特定符号切割
上面改变一下原字符串,空格隔开改成点号隔开
在API中,查询一个点(.)表示任意字符,如果切割函数中只写一个点,看看会发生什么。
package regex;
public class Demo1_Split {
public static void main(String[] args) {
String st = "安东尼.科比.詹姆斯.哈登.保罗"; // 每个名字空格隔开
//使用split方法,参数是一个空格的正则表达式
String []arr= st.split(".");
for (inti = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
结果输出是空白,原因是一个点号表示任意字符,那么看到任何字符(包含空白,空格)都进行切割,字符串被切碎了。下面如果想根据点号来切割,正则表达式需要写成\\.,两个斜杠表示一个斜杠,这里存在转义。
package regex;
public class Demo1_Split {
public static void main(String[] args) {
String st = "安东尼.科比.詹姆斯.哈登.保罗"; // 每个名字空格隔开
//使用split方法,参数是一个空格的正则表达式
String []arr= st.split("\\.");
for (inti = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}