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)的問題的時(shí)候,如要取出ie瀏覽器上傳文件的文件名,由于ie會把整個(gè)文件路徑都作為文件名上傳,需要用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為\\\\,因?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í)候,會發(fā)現(xiàn)達(dá)不到自己想要的結(jié)果。比如

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

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

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


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

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 山西省| 公主岭市| 永昌县| 壶关县| 吴江市| 兴城市| 河西区| 丹棱县| 抚顺县| 青河县| 金溪县| 兴文县| 三亚市| 金坛市| 黄山市| 桐乡市| 象山县| 英德市| 松阳县| 平山县| 山阳县| 壤塘县| 威信县| 梓潼县| 慈溪市| 五原县| 印江| 金昌市| 茶陵县| 原阳县| 吉水县| 板桥市| 瑞丽市| 壶关县| 十堰市| 兰州市| 滦南县| 遂昌县| 潮安县| 云安县| 荣昌县|