@TOC
String.split()函数有两种形式
- split(String regex)
- split(String regex,int limit)
regex:可以是字符串或者正则表达式
limit:可以限制返回的数组的元素个数,当其值为-1时,表示任意大小
//limit省略
String s = "张三 李四 王五";
String[] array = s.split(" ");
for (String s1 : array) {
System.out.println(s1);
}
张三
李四
王五
//limit 设置为2
String s = "张三 李四 王五";
String[] array = s.split(" ",2);
for (String s1 : array) {
System.out.println(s1);
}
张三
李四 王五
split(String regex)会默认忽略字符串后面的分隔符,要想让所有的分隔符生效,需要设置split(String regex,int limit)的limit为负数
String s = "张三-李四-王五-";
String[] array = s.split("-");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
3
String s = "张三-李四-王五-";
String[] array = s.split("-",-1);
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
4
当split()函数以空格符作为分隔符时,字符串前后有多个空格的情况,需要使用trim()去掉前后的空格
String s = " 张三 李四 王五 ";
String[] array = s.split(" ");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
6
String s = " 张三 李四 王五 ";
String[] array = s.trim().split(" ");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
3
当split()函数分割空格符时,如果中间有多个分割符可以利用正则表达式\s+,\s表示空格,+表示前面的字符至少出现一个,而\需要转义,所以需要写成\s+
String s = "张三 李四 王五";
String[] array = s.trim().split("\\s+");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
3
.或者|为分隔符时,需要使用\.或者\|。因为匹配.需要使用.而\需要转义,则需要为\.
String s = "张三.李四.王五";
String[] array = s.trim().split("\\.");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
3
如果需要用到多个分隔符,可以使用|
String s = "张三and李四or王五";
String[] array = s.trim().split("and|or");
for (String s1 : array) {
System.out.println(s1);
}
System.out.println(array.length);
张三
李四
王五
3