JAVA中split函數(shù)的常見用法實例
只寫經(jīng)常使用的,并不完整。
1.基本用法,將字符串按照指定字符串進行分割,例如:
public class Main { public static void main(String[] args) { String ss = "abcabcdefg"; String[] split = ss.split("bc"); for(String st:split){ System.out.println(st); } System.out.println("分隔后字符串?dāng)?shù)組長度為"); System.out.println(split.length); } }
輸出:
a
a
defg
分隔后字符串?dāng)?shù)組長度為
3
2.需要使用多個字符進行分割:使用split("[]"),其中[]里面存放需要分割的字符,注意,現(xiàn)在是按照字符來分割,例如:
public class Main { public static void main(String[] args) { String ss = "abcabcdefg"; String[] split = ss.split("[bc]"); for(String st:split){ System.out.println(st); } System.out.println("分隔后字符串?dāng)?shù)組長度為"); System.out.println(split.length); } }
輸出:
a
a
defg
分隔后字符串?dāng)?shù)組長度為
5
原因是將b和c都當(dāng)作分割的字符。
用法其實上面兩條差不多就可以了,重要的是一些特殊情況:
情況1:字符串中有連續(xù)的分割符,例如2中,b也是分割符c也是分隔符,那么在分割bc時會產(chǎn)生一個空字符(""),n個連續(xù)的分割符會產(chǎn)生n-1個空字符。下面是調(diào)試時的信息:
可以看到中間產(chǎn)生了空字符。
情況2:分割符出現(xiàn)在首部,那么出現(xiàn)幾個分割符,就有多少個空字符。例如
public class Main { public static void main(String[] args) { String ss = "aaabcabcdefg"; String[] split = ss.split("[a]"); for(String st:split){ System.out.println(st); } System.out.println("分隔后字符串?dāng)?shù)組長度為"); System.out.println(split.length); } }
輸出:
bc
bcdefg
分隔后字符串?dāng)?shù)組長度為
5
前面3個a都是空字符。
情況3:有些正則表達式,這是一種特殊情況,如,*等符號需要添加轉(zhuǎn)義字符\。
解決方法:
針對出現(xiàn)空字符,可以寫一個遍歷,長度為0的過濾掉。
for(String st:split){ if(st.length()>0){ list.add(st); } }
針對轉(zhuǎn)義字符,編譯器會報錯,就試試添加\。
補充:Java中Split函數(shù)的用法技巧
在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個字符型數(shù)組,但使用過程中還有一些小技巧。
如執(zhí)行:"2|33|4".split("|")
出來的結(jié)果是:
""
2
|
3
3
|
4
奇怪吧,不過注意看一下API說明還是知道原因的.
java.lang.string.split
split 方法
將一個字符串分割為子字符串,然后將結(jié)果作為字符串?dāng)?shù)組返回。
stringObj.split([separator,[limit]])
參數(shù)
- stringObj
必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。 - separator
可選項。字符串或 正則表達式對象,它標(biāo)識了分隔字符串時使用的是一個還是多個字符。如果忽略該選項,返回包含整個字符串的單一元素數(shù)組。 - limit
可選項。該值用來限制返回數(shù)組中的元素個數(shù)。
說明
split 方法的結(jié)果是一個字符串?dāng)?shù)組,在 stingObj 中每個出現(xiàn) separator 的位置都要進行分解
所以正常的寫法是這樣的:
1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");
“.”和“|”都是轉(zhuǎn)義字符,必須得加"\\";
3、如果在一個字符串中有多個分隔符,可以用“|”作為連字符,比如:“a=1 andb =2 or c=3”,把三個都分隔出來,可以用String.split("and|or");
總結(jié)
到此這篇關(guān)于JAVA中split函數(shù)的常見用法的文章就介紹到這了,更多相關(guān)Java split函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)從網(wǎng)絡(luò)下載多個文件
這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)從網(wǎng)絡(luò)下載多個文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07Java并發(fā)容器之ConcurrentLinkedQueue詳解
這篇文章主要介紹了Java并發(fā)容器之ConcurrentLinkedQueue詳解,加鎖隊列的實現(xiàn)較為簡單,這里就略過,我們來重點來解讀一下非阻塞隊列,2023-12-12
從點到面, 下面我們來看下非阻塞隊列經(jīng)典實現(xiàn)類ConcurrentLinkedQueue,需要的朋友可以參考下Java?中很好用的數(shù)據(jù)結(jié)構(gòu)(你絕對沒用過)
今天跟大家介紹的就是?java.util.EnumMap,也是?java.util?包下面的一個集合類,同樣的也有對應(yīng)的的?java.util.EnumSet,對java數(shù)據(jù)結(jié)構(gòu)相關(guān)知識感興趣的朋友一起看看吧2022-05-05Java使用@Autowired注解獲取對象為null的幾種情況及解決方法
這篇文章主要給大家介紹了使用@Autowired注解獲取對象為null的幾種情況以及?解決方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價值,需要的朋友可以參考下2023-09-09