tinguo002

           

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

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

          Java 截取反斜杠 replaceAll和split (“\”) 問(wèn)題解決辦法

          2009年07月15日 星期三 上午 11:26
          xxx.split("\\") 顯然得不到想要的結(jié)果

          正確方法

          xxx.split("\\\\");

          原因如下:

          在Java中處理一些路徑相關(guān)的問(wèn)題的時(shí)候,如要取出ie瀏覽器上傳文件的文件名,由于ie會(huì)把整個(gè)文件路徑都作為文件名上傳,需要用java.lang.String中的replaceAll或者split來(lái)處理。如:

          上傳文件路徑為: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為\\\\,因?yàn)樵趈ava中\(zhòng)\表示一個(gè)\,而regex中\(zhòng)\也表示\,所以當(dāng)\\\\解析成regex的時(shí)候?yàn)閈\。

          由于unix中file.separator為斜杠"/",下面這段代碼可以處理windows和unix下的所有情況:

          String temp[] = name.replaceAll("\\\\","/").split("/");
          if (temp.length > 1) {
              name = temp[temp.length - 1];
          }


          在使用java中的split拆分特殊字符的時(shí)候,會(huì)發(fā)現(xiàn)達(dá)不到自己想要的結(jié)果。比如

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

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

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


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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 普宁市| 高平市| 贵南县| 毕节市| 曲周县| 蒙自县| 佛山市| 北川| 祁东县| 右玉县| 台江县| 天镇县| 滕州市| 桑植县| 澎湖县| 和硕县| 曲周县| 河东区| 霍城县| 苗栗市| 崇信县| 庆阳市| 盐津县| 麻江县| 郯城县| 土默特右旗| 富民县| 象山县| 武山县| 拉孜县| 万载县| 叶城县| 当涂县| 大竹县| 浙江省| 福泉市| 波密县| 赤峰市| 金湖县| 剑河县| 金川县|