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

相關文章
相關標籤/搜索