Java的split()函数
程序员文章站
2022-07-05 09:09:59
...
今天用到String的split()函数,调试半天不好使!
1.split()函数,根据给定的正则表达式的匹配来拆分此字符串,但是不能包含正则特殊字符 . |
2.下面是官方的API文档
split
public String[] split(String regex)
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split
方法。因此,结果数组中不包括结尾空字符串。
例如,字符串 "boo:and:foo" 产生带有下面这些表达式的结果:
Regex 结果 : { "boo", "and", "foo" } o { "b", "", ":and:f" }
regex
- 定界正则表达式
3.正确应用
String str = ""+"aaa"+":"+"bbb"+""; String[] test = str.split(":"); System.out.println(test[0]); System.out.println(test[1]); String str333 = ""+"aaa"+","+"bbb"+""; String[] test333 = str333.split(","); System.out.println(test333[0]); System.out.println(test333[1]); String str222 = ""+"aaa"+"|"+"bbb"+""; String[] test222 = str222.split("\\|");//其中|需要转义 System.out.println(test222[0]); System.out.println(test222[1]); String str444 = ""+"aaa"+"."+"bbb"+""; String[] test444 = str444.split("\\.");//其中.需要转义 System.out.println(test444[0]); System.out.println(test444[1]);
4.网站搜索内容
.在正则表达式里面是特殊字符,可以查看API Pattern
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
对于特殊字符,必须用\进行转义,
所以正确的分解为:String s="a.txt";
String a[]=s.split("\\.");-->第一个\是java本身对第二个\得转义,第二个\是对后面的.进行正则转义。