java String.split 無法使用小數(shù)點(diǎn)分割的問題
String.split 無法使用小數(shù)點(diǎn)分割
當(dāng)我分割文件名的時(shí)候,想使用split來進(jìn)行分割,由于文件名使用的是".",當(dāng)我使用此分割時(shí)候數(shù)組返回?zé)o效
當(dāng)然也可以使用indexof+length的方式來截取
解決方法
連續(xù)使用"\\."對(duì)小數(shù)點(diǎn)進(jìn)行轉(zhuǎn)義即可
因此我去eclipse測試了下
public class HelloWorld { ? ? public static void main(String[] args) { ? ? ? ? String sTemp = "test.xls"; ? ? ? ? String[] sTempArray = sTemp.split("."); ? ? ? ? System.out.print(sTempArray[0]); ? ? ? ? return; ? ? } }
當(dāng)我運(yùn)行上面的代碼的時(shí)候發(fā)現(xiàn)報(bào)錯(cuò)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at HelloWorld.main(HelloWorld.java:5)
其實(shí)是小數(shù)點(diǎn)需要轉(zhuǎn)義的
public class HelloWorld { ? ? public static void main(String[] args) { ? ? ? ? String sTemp = "test.xls"; ? ? ? ? String[] sTempArray = sTemp.split("."); ? ? ? ? System.out.print(sTempArray[0]); ? ? ? ? return; ? ? } }
運(yùn)行結(jié)果如下
test
String.split()方法的注意點(diǎn)(轉(zhuǎn)義符)
java.lang包中的String.split()方法
1.字符串中存在.和|的時(shí)候
不能直接用String.split(".")進(jìn)行分隔,而是String.split("\\ .")或者String.split("\\ |");
因?yàn)橹苯訉懙脑捪到y(tǒng)是無法識(shí)別的,需要通過轉(zhuǎn)義符
用豎 * 分隔字符串運(yùn)行將拋出java.util.regex.PatternSyntaxException異常,用加號(hào) + 也是如此。
同時(shí) \ 也是如此,在運(yùn)用一定要用上轉(zhuǎn)義符 ---- \\
具體可以查詢jdk1.6或者1.8中的java.lang包中的String.split(String regex)方法中的規(guī)則表達(dá)式
2.如果在一個(gè)字符串中有多個(gè)分隔符
可以用“|”作為連字符,比如:“acount=? and uu =? or n=?”,把三個(gè)都分隔出來,可以用
String.split("and | or");使用String.split方法分隔字符串時(shí),分隔符如果用到一些特殊字符,可能會(huì)得不到我們預(yù)期的結(jié)果。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud分布式項(xiàng)目下feign的使用示例詳解
這篇文章主要介紹了SpringCloud分布式項(xiàng)目下feign的使用,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07Java 內(nèi)省(Introspector)深入理解
這篇文章主要介紹了Java 內(nèi)省(Introspector)深入理解的相關(guān)資料,需要的朋友可以參考下2017-03-03Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門流程分析
這篇文章主要介紹了Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06java數(shù)據(jù)結(jié)構(gòu)之希爾排序
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之希爾排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11基于SpringBoot2.0默認(rèn)使用Redis連接池的配置操作
這篇文章主要介紹了基于SpringBoot2.0默認(rèn)使用Redis連接池的配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12spring boot定時(shí)器實(shí)現(xiàn)定時(shí)同步數(shù)據(jù)的操作步驟
在Java中,@Scheduled注解是用于指定定時(shí)任務(wù)的執(zhí)行規(guī)則的,這篇文章給大家介紹spring boot定時(shí)器實(shí)現(xiàn)定時(shí)同步數(shù)據(jù)的操作步驟,感興趣的朋友一起看看吧2023-12-12SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯(cuò)誤的解決
這篇文章主要介紹了SpringMVC跨服務(wù)器上傳文件中出現(xiàn)405錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Spring實(shí)戰(zhàn)之SpEl語法實(shí)例詳解
這篇文章主要介紹了Spring實(shí)戰(zhàn)之SpEl語法,結(jié)合實(shí)例形式分析了SpEl創(chuàng)建數(shù)組、集合及解析變量等相關(guān)操作原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Java Date時(shí)間類型的操作實(shí)現(xiàn)
本文主要介紹Java Date 日期類型,以及Calendar的怎么獲取時(shí)間,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03