1. 程式人生 > >Java學習筆記2:使用replaceAll()方法替換字串中的反斜槓:左斜槓(\)和右斜槓(/)

Java學習筆記2:使用replaceAll()方法替換字串中的反斜槓:左斜槓(\)和右斜槓(/)

       在程式設計過程中,需要將一個字串中的反斜槓(\)全部替換成(\\),很簡單的操作但是很容易報錯。

       比如:String filePath  =  "D:\daxiang\test\daxiang.jpg" ;

       開始時,呼叫 replaceAll()方法以為就能替換的程式碼如下:

       filePath  =  filePath.replaceAll("\","\\");

       但程式會報正則表示式的錯誤。                      

經過網上查詢一些例子,將錯誤原因和解決方法總結如下:

在不同的系統中,路徑的分隔符不同,故需要做出判斷,並切換分隔符

(1)Java把字串中的反斜槓(\)替換成(\\)

Java中的replaceAll()方法要用4個反斜槓,表示一個反斜槓

        replaceAll()方法實際是採用正則表示式的規則去匹配的。regex"\\"表示一個"\",在java中一個"\"也要用"\\"表示。這樣,前一個"\\"代表regex中的"\",後一個"\\"代表java中的"\"所以字串轉義一次,正則轉義一次,那麼一個斜扛要寫4個,要想使用replaceAll()方法將字串中的反斜槓(\)替換成(\\),則需要這樣寫:replaceAll("\\\\","\\\\\\\\")

例:

       str1="aa\bbb"; str2="aa'bbb" ;

       要想替換成

       str1="aa\\bbb";str2="aa\'bbb" ;

       必須這樣替換:

       str1 = str1.replaceAll("\\\\","\\\\\\\\") ;

       str2 =str2.replaceAll("'", "\\\\'") ;

(2)Java把字串中的反斜槓(/)替換成(\)

       replaceAll("/","\\\\") ;