2012-10-10 36 views
0

我想「與\」來代替包含字符串,下面是我試過Java的替代「與」

String s="\"/test /string\""; 
    s = s.replaceAll("\"", "\\\""); 
    System.out.println(s); 

的程序,但我得到的輸出字符串「/測試/串」一樣。爲什麼我的替換功能不起作用。如果我這樣做

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

然後我得到我想\「測試/字符串\」的輸出。爲什麼前面的代碼工作,即使在代碼中,我試圖用「替換」代碼

+0

的(HTTP [另一個在Java中替換字符串]可能重複可能是[Java如何替換斜槓?]的副本(http://stackoverflow.com/questions/5756748/java-how-to-java-how-to-to-java-with-other-in-java) –

+0

可能的重複[Java如何替換斜槓?](http://stackoverflow.com/questions/5756748/java-how-to-代替斜槓) – fglez

回答

10

您使用的是String.replaceAll,它使用正則表達式作爲其輸入,包括替換。作爲記錄在Match.replaceAll()

注意,在替換字符串中的反斜槓(\)和美元符號($)可能會導致實際結果與是否正在視爲文字替換字符串不同。

你真的只是做一個直,不涉及正則表達式替換,所以使用String.replace代替://計算器:

s = s.replace("\"", "\\\"");