对于String.split()函数,想必几乎所有人都知道功能:分割字符串。
以前使用这个函数没有遇到过问题,这次使用split("|")的时候,出现奇怪的情况,所以特别记下来,巩固自己的基础知识。
以下是一个测试代码:
String str = "Alice|Bob|Tom";
String[] strArray = str.split("|");
for(int i = 0;i<strArray.length;i++) {
System.out.print(strArray[i]+",");
}
预想情况是:Alice,Bob,Tom,
实际情况是:,A,l,i,c,e,|,B,o,b,|,T,o,m,
产生原因分析:split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\\加以转义。
只要将“|”进行转义
String[] strArray = str.split("|");
修改为
String[] strArray = str.split("\\|");
就能得到我们想要的预计结果了
【多个符号做分隔符】
例如字符串:浙江^杭州:西湖
只要split("\\^|:")
就可以了