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方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(java String.split 无法使用小数点分割的问题)