今天在进行开发时结果总是不正确。调试发现如下内容:
原字符串
valStr="1.txt\\*\\&\\*5"
想拆分成
1.txt与
5,方法如下
String[] splitVal = valStr.split("\\*\\&\\*");
String rowkey = splitVal[0];
可是实际结果却是没有拆分成功,结果还是
splitVal.length=1
原因是由于String.split()中的切分参数是正则表达式而\ *两个字符在正则中都有特殊意义,所以我们做以下变换(红色为新加入字符串内容)
做为拆分的原字符串为
\*\&\*
在正则中需要将\转义即得如下
\\*\\&\\*
将*转义得如下结果
\\\*\\&\\\*
现在将此字符放入String中需要将所有的\转义,也就是前面加上\得到如下结果
\\\\\\*\\\\&\\\\\\*
测试
String[] splitVal = valStr.split("\\\\\\*\\\\&\\\\\\*");
String rowkey = splitVal[0];
结果
splitVal.length=2