Java String中的split方法使用總結(jié)
String中split方法使用
String的split()方法用于按傳入的字符或字符串對String進(jìn)行拆分,返回拆分之后的數(shù)組。
1、一般用法
用一般的字符,例如@或,等符號做分隔符時(shí):
String address="上海@上海市@閔行區(qū)@吳中路"; String[] splitAddr=address.split("@"); System.out.println(splitAddr [0]+splitAddr [1]+splitAddr [2]+splitAddr [3]);
2、需要轉(zhuǎn)義的分隔符
當(dāng)使用* ^ : | . \等6個符號做分隔符時(shí),上述6個符號轉(zhuǎn)義字符,必須得加"\\",即split(“\\^”)等。第二個“\”是用來給這6種符號轉(zhuǎn)義,第一個“\”是用來給第二個“\”轉(zhuǎn)義。
String address="上海*上海市*閔行區(qū)*吳中路"; String[] splitAddr=address.split("\\*"); ? System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);
其中有個更特殊的,就是“\”。如果字符串中想要使用"\",就應(yīng)該使用"\\"進(jìn)行轉(zhuǎn)義。也就是說,對于"a\b",應(yīng)該寫成"a\\b",而如果想要用split方法針對"\"進(jìn)行拆分,應(yīng)該使用"a\\b".split("\\\\")。
3、多個符號作為分隔符
可以用“|”字符作為連字符,把多個分隔符分隔的內(nèi)容都區(qū)分開:
String address="上海^上海市@閔行區(qū)#吳中路"; String[] splitAddr=address.split("\\^|@|#"); System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]); ?
4、空值的存儲
如果split(String s)函數(shù)產(chǎn)生了空值,那么不會存到數(shù)組中。可以通過使用它的重載函數(shù)split(";",-1)實(shí)現(xiàn)空值的保存。這里的“;”只是作為分隔符的一個例子。
String.split()需要的轉(zhuǎn)義字符
注意“/”和“-”,"&"不是轉(zhuǎn)義字符。
String str="aaaa/aaaa/aaaa"; String[] strings=str.split("/"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa-aaaa-aaaa"; String[] strings=str.split("-"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa&aaaa&aaaa"; String[] strings=str.split("&"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
轉(zhuǎn)義字符
- |
- \
- $
- *
- +
- .
- ?
- ^
- (
- )
- [
- ]
- {
- }
String str="aaaa|aaaa|aaaa"; String[] strings=str.split("\\|"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa\\aaaa\\aaaa"; String[] strings=str.split("\\\\"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa$aaaa$aaaa"; String[] strings=str.split("\\$"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa*aaaa*aaaa"; String[] strings=str.split("\\*"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa+aaaa+aaaa"; String[] strings=str.split("\\+"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa.aaaa.aaaa"; String[] strings=str.split("\\."); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa?aaaa?aaaa"; String[] strings=str.split("\\?"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa^aaaa^aaaa"; String[] strings=str.split("\\^"); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
String str="aaaa(aaaa(aaaa"; String[] strings=str.split("\\("); for (int i = 0; i < strings.length; i++) { ? ? System.out.println(strings[i]); }
所有的括號都是轉(zhuǎn)義字符。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud Stream消息驅(qū)動實(shí)例詳解
這篇文章主要介紹了SpringCloud Stream消息驅(qū)動的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03淺談Java循環(huán)中的For和For-each哪個更快
本文主要介紹了淺談Java循環(huán)中的For和For-each哪個更快,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08java實(shí)現(xiàn)多人多牌數(shù)比較游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多人多牌數(shù)比較游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Java?C++題解leetcode字符串輪轉(zhuǎn)KMP算法詳解
這篇文章主要為大家介紹了Java?C++題解leetcode字符串輪轉(zhuǎn)KMP算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09spring boot實(shí)現(xiàn)自動輸出word文檔功能的實(shí)例代碼
這篇文章主要介紹了spring boot實(shí)現(xiàn)自動輸出word文檔功能的實(shí)例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04