Java 截取反斜杠 replaceAll和split (“\”)轉(zhuǎn)
轉(zhuǎn):http://blog.csdn.net/scy411082514/article/details/7987852Java 截取反斜杠 replaceAll和split (“\”) 問題解決辦法
2009年07月15日 星期三 上午 11:26
xxx.split("\\") 顯然得不到想要的結(jié)果
正確方法
xxx.split("\\\\");
原因如下:
在Java中處理一些路徑相關(guān)的問題的時候,如要取出ie瀏覽器上傳文件的文件名,由于ie會把整個文件路徑都作為文件名上傳,需要用java.lang.String中的replaceAll或者split來處理。如:
上傳文件路徑為:C:\Documents and Settings\collin\My Documents\111-lazyloading.gif,欲取出文件名:111-lazyloading.gif。可以
String temp[] = name.split("\\\\");
if (temp.length > 1) {
name = temp[temp.length - 1];
}
regex為\\\\,因為在java中\(zhòng)\表示一個\,而regex中\(zhòng)\也表示\,所以當\\\\解析成regex的時候為\\。
由于unix中file.separator為斜杠"/",下面這段代碼可以處理windows和unix下的所有情況:
String temp[] = name.replaceAll("\\\\","/").split("/");
if (temp.length > 1) {
name = temp[temp.length - 1];
}
在使用java中的split拆分特殊字符的時候,會發(fā)現(xiàn)達不到自己想要的結(jié)果。比如
- "1234567891^1234567890".split("^")[1]
會提示數(shù)組下標越界異常,說明根本沒有拆分成功。究其原因,原來^是特殊字符,split中的參數(shù)為正則表達式,所以要想讓split識別特殊字符,就需要把參數(shù)轉(zhuǎn)變?yōu)檎齽t,即在參數(shù)前加上"\\"即可。
- "1234567891^1234567890".split("\\^")[1]
|
|
歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人
posted on 2013-04-23 14:53 一堣而安 閱讀(660) 評論(0) 編輯 收藏 所屬分類: java