使用replaceAll()方法替換字符串中的反斜杠

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

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

? ? ? ?開始時,調(diào)用 replaceAll()方法以為就能替換的代碼如下:

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

? ? ? ?但程序會報正則表達式的錯誤。??????????????????????

經(jīng)過網(wǎng)上查找一些例子,將錯誤原因和解決方法總結如下:

? ? ? ?在不同的系統(tǒng)中,路徑的分隔符不同,故需要做出判斷,并切換分隔符

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

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

replaceAll()方法實際是采用正則表達式的規(guī)則去匹配的。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("/","\\\\") ;

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容