tinguo002

           

          Java 截取反斜杠 replaceAll和split (“\”)轉(zhuǎn)

          轉(zhuǎn):http://blog.csdn.net/scy411082514/article/details/7987852

          Java 截取反斜杠 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é)果。比如

          Java代碼  收藏代碼
          1. "1234567891^1234567890".split("^")[1

          會提示數(shù)組下標越界異常,說明根本沒有拆分成功。究其原因,原來^是特殊字符,split中的參數(shù)為正則表達式,所以要想讓split識別特殊字符,就需要把參數(shù)轉(zhuǎn)變?yōu)檎齽t,即在參數(shù)前加上"\\"即可。

          Java代碼  收藏代碼
          1. "1234567891^1234567890".split("\\^")[1


          歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人

          posted on 2013-04-23 14:53 一堣而安 閱讀(660) 評論(0)  編輯  收藏 所屬分類: java

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丁青县| 连州市| 屏南县| 林口县| 富宁县| 贵港市| 聂拉木县| 靖宇县| 吉水县| 霞浦县| 济宁市| 雷州市| 岳西县| 秦皇岛市| 余姚市| 车致| 中山市| 土默特左旗| 翁牛特旗| 天柱县| 江阴市| 琼结县| 二连浩特市| 延津县| 怀仁县| 濮阳县| 扶风县| 承德县| 巨野县| 马关县| 汽车| 丰城市| 龙门县| 泸定县| 琼结县| 榆林市| 尼玛县| 平昌县| 忻城县| 亳州市| 中阳县|