轉(zhuǎn)帖|其它|編輯:郝浩|2010-06-03 11:42:45.000|閱讀 606 次
概述:在使用String.split方法分隔字符串時(shí),分隔符如果用到一些特殊字符,可能會(huì)得不到我們預(yù)期的結(jié)果。我們經(jīng)常使用public String[] split(String regex)方法來(lái)拆分一個(gè)有分隔符的字符串,但是由于參數(shù)regex是一個(gè) regular-expression的匹配模式而不是一個(gè)簡(jiǎn)單的String,所以他對(duì)一些特殊的字符可能會(huì)出現(xiàn)你預(yù)想不到的結(jié)果。本文將教你如何運(yùn)用String.split方法分隔字符串。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在使用String.split方法分隔字符串時(shí),分隔符如果用到一些特殊字符,可能會(huì)得不到我們預(yù)期的結(jié)果。
我們經(jīng)常使用public String[] split(String regex)方法來(lái)拆分一個(gè)有分隔符的字符串,但是由于參數(shù)regex是一個(gè) regular-expression的匹配模式而不是一個(gè)簡(jiǎn)單的String,所以他對(duì)一些特殊的字符可能會(huì)出現(xiàn)你預(yù)想不到的結(jié)果,比如測(cè)試下面的代碼:用豎線 | 分隔字符串,你將得不到預(yù)期的結(jié)果
view plaincopy to clipboardprint? String[] aa = "aaa|bbb|ccc".split("|"); //得不到預(yù)期的結(jié)果 //String[] aa = "aaa|bbb|ccc".split("\\|"); 這樣才能得到正確的結(jié)果 for (int i = 0 ; i<aa.length ; i++ ) { System.out.println("--"+aa[i]); } //用豎 * 分隔字符串運(yùn)行將拋出異常,用加號(hào) + 也是如此。 String[] aa = "aaa*bbb*ccc".split("*"); //String[] aa = "aaa|bbb|ccc".split("\\*"); 這樣才能得到正確的結(jié)果 for (int i = 0 ; i<aa.length ; i++ ) { System.out.println("--"+aa[i]); } |
顯然,+ * 不是有效的模式匹配規(guī)則表達(dá)式,用"\\*" "\\+"轉(zhuǎn)義后即可得到正確的結(jié)果。
"|" 分隔串時(shí)雖然能夠執(zhí)行,但是卻不是預(yù)期的目的,"\\|"轉(zhuǎn)義后即可得到正確的結(jié)果。
還有如果想在串中使用"\"字符,則也需要轉(zhuǎn)義.首先要表達(dá)"aaaa\bbbb"這個(gè)串就應(yīng)該用"aaaa\\bbbb",如果要分隔就應(yīng)該這樣才能得到正確結(jié)果:
String[] aa = "aaa\\bbb\\bccc".split(\\\\);
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載