java String.split 無(wú)法使用小數(shù)點(diǎn)分割的問(wèn)題
String.split 無(wú)法使用小數(shù)點(diǎn)分割
當(dāng)我分割文件名的時(shí)候,想使用split來(lái)進(jìn)行分割,由于文件名使用的是".",當(dāng)我使用此分割時(shí)候數(shù)組返回?zé)o效
當(dāng)然也可以使用indexof+length的方式來(lái)截取
解決方法
連續(xù)使用"\\."對(duì)小數(shù)點(diǎn)進(jìn)行轉(zhuǎn)義即可
因此我去eclipse測(cè)試了下
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)橹苯訉?xiě)的話系統(tǒng)是無(wú)法識(shí)別的,需要通過(guò)轉(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è)都分隔出來(lái),可以用
String.split("and | or");使用String.split方法分隔字符串時(shí),分隔符如果用到一些特殊字符,可能會(huì)得不到我們預(yù)期的結(jié)果。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java16 JDK安裝并設(shè)置環(huán)境變量的方法步驟
突然想起自己大學(xué)剛接觸java的時(shí)候,要下載JDK和配置環(huán)境變量,那時(shí)候我上網(wǎng)找了很多教學(xué),本文就詳細(xì)的介紹一下Java16 JDK安裝并設(shè)置環(huán)境變量,感興趣的可以了解一下2021-09-09
SpringBoot如何訪問(wèn)html和js等靜態(tài)資源配置
這篇文章主要介紹了SpringBoot如何訪問(wèn)html和js等靜態(tài)資源配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java詳解如何將excel數(shù)據(jù)轉(zhuǎn)為樹(shù)形
在平常的辦公工作中,excel數(shù)據(jù)的操作是最常見(jiàn)的需求,今天就來(lái)看一下通過(guò)Java如何來(lái)實(shí)現(xiàn)將excel數(shù)據(jù)轉(zhuǎn)為樹(shù)形,感興趣的朋友可以了解下2022-08-08
從零開(kāi)始學(xué)Java之關(guān)系運(yùn)算符
今天帶大家復(fù)習(xí)Java關(guān)系運(yùn)算符,文中對(duì)Java運(yùn)算符相關(guān)知識(shí)作了詳細(xì)總結(jié),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-08-08
Java基于線程實(shí)現(xiàn)帶有滾動(dòng)效果的Label標(biāo)簽實(shí)例
這篇文章主要介紹了Java基于線程實(shí)現(xiàn)帶有滾動(dòng)效果的Label標(biāo)簽,實(shí)例分析了java線程的使用技巧及l(fā)abel標(biāo)簽的實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

