Java使用split(".")切割报错解决方法

Java使用split(“.”)出错抛出ArrayIndexOutOfBoundsException

情景:

容易被忽略的转义异常: 项目中使用split截取图片时抛出了一个截取代码后以下:java

@Test
public void testSpit() {
    String split[] = "123.jpg".split(".");
    for (int i = 0; i <= split.length; i++) {
        System.out.println(split[i]);
    }
}

执行上段代码抛出如下异常:正则表达式

java.lang.ArrayIndexOutOfBoundsException: 0
atink.lit.service.PicService$$FastClassBySpringCGLIB$$7fcf9455.invoke(<generated>)
atorg.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
atorg.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

解决方法:

查寻api发现,split()方法接受的是正则表达式,因此传入的”.”就变成了正则表达式的关键字,表示除换行符以外的任意字符。因此,须要转义”.”或”[.]”。spring

@Test
public void testSpit() {
    String split[] = "123.jpg".split("\\.");
    for (int i = 0; i <= split.length; i++) {
        System.out.println(split[i]);
    }
}

完事 : )api

相关文章
相关标签/搜索