java String.split 无法使用小数点分割的问题
作者:红烧鲈鱼
这篇文章主要介绍了java String.split 无法使用小数点分割的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
String.split 无法使用小数点分割
当我分割文件名的时候,想使用split来进行分割,由于文件名使用的是".",当我使用此分割时候数组返回无效
当然也可以使用indexof+length的方式来截取
解决方法
连续使用"\\."对小数点进行转义即可
因此我去eclipse测试了下
public class HelloWorld { public static void main(String[] args) { String sTemp = "test.xls"; String[] sTempArray = sTemp.split("."); System.out.print(sTempArray[0]); return; } }
当我运行上面的代码的时候发现报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at HelloWorld.main(HelloWorld.java:5)
其实是小数点需要转义的
public class HelloWorld { public static void main(String[] args) { String sTemp = "test.xls"; String[] sTempArray = sTemp.split("."); System.out.print(sTempArray[0]); return; } }
运行结果如下
test
String.split()方法的注意点(转义符)
java.lang包中的String.split()方法
1.字符串中存在.和|的时候
不能直接用String.split(".")进行分隔,而是String.split("\\ .")或者String.split("\\ |");
因为直接写的话系统是无法识别的,需要通过转义符
用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
同时 \ 也是如此,在运用一定要用上转义符 ---- \\
具体可以查询jdk1.6或者1.8中的java.lang包中的String.split(String regex)方法中的规则表达式
2.如果在一个字符串中有多个分隔符
可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用
String.split("and | or");使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。