2017-04-04 26 views
-1

替換$用\ $字符串中的我已經嘗試了一些東西,但打破了問題了,我有這一半的工作...如何在Java

String msg = "my cool $ stuff" 
String newMsg = msg.replaceAll("\\$", "h"); 

造成「我的酷^ h的東西」

我真正的目標是有它是「我酷\ $東西」

它不斷與捕捉雖然錯誤吹起來。我似乎無法正確逃避它。

回答

3

你並不真的需要這裏的正則表達式:

String msg = "my cool $ stuff" 
String newMsg = msg.replace("$", "\\$"); 
4

沒有任何正則表達式,你可以這樣做:

String repl = "my cool $ stuff".replace("$", "\\$") 
//=> my cool \$ stuff 

如果你必須使用正則表達式那麼這將是:

String repl = input.replaceAll("\\$", "\\\\$0"); 

\\\\將用於將單\在替換字符串。

+1

這工作,因爲['replace'](https://docs.oracle.com/javase/7/docs/api/java/lang /String.html#replace(char,%20char))將'char'作爲參數,但['replaceAll'](https://docs.oracle.com/javase/7/docs/api/java/lang /String.html#replaceAll(java.lang.String,%20java.lang.String))需要一個正則表達式,這樣'$'不再成爲問題。 – ArtB