Java String中的split方法使用總結(jié)
String中split方法使用
String的split()方法用于按傳入的字符或字符串對String進(jìn)行拆分,返回拆分之后的數(shù)組。
1、一般用法
用一般的字符,例如@或,等符號做分隔符時:
String address="上海@上海市@閔行區(qū)@吳中路";
String[] splitAddr=address.split("@");
System.out.println(splitAddr [0]+splitAddr [1]+splitAddr [2]+splitAddr [3]);2、需要轉(zhuǎn)義的分隔符
當(dāng)使用* ^ : | . \等6個符號做分隔符時,上述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)實現(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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的案例詳解
JdbcTemplate是Spring框架中的一個核心類,用于簡化Java應(yīng)用程序與關(guān)系型數(shù)據(jù)庫的交互操作,本文給大家介紹SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧2023-10-10
詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學(xué)習(xí)總結(jié)——Spring實現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
springboot項目中jackson-序列化-處理 NULL教程
這篇文章主要介紹了springboot項目中jackson-序列化-處理 NULL教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Springboot+Mybatis實現(xiàn)分頁加條件查詢功能
這篇文章主要為大家詳細(xì)介紹了Springboot+Mybatis實現(xiàn)分頁加條件查詢,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例
本文主要介紹了SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06

