今天在进行开发时结果总是不正确。调试发现如下内容:
原字符串
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
本文介绍了如何在Java中使用String.split()方法处理包含特殊字符的字符串拆分问题。通过逐步解析并转义特殊字符,最终实现了正确的字符串拆分。
1516

被折叠的 条评论
为什么被折叠?



