我不能得到我在這裏失蹤的東西。既replace
和從java.lang.String
replaceAll
各自ocurrence之後產生一個問號(?):Java替換/替換所有奇怪的行爲
String str = "ABCD DKABCED DLS ABC";
System.out.println("str='"+str+"'");
System.out.println("str.replaceAll(\"ABC\", \"A\\\\${BC}\") => " + str.replaceAll("ABC", "A\\${BC}"));
System.out.println("str.replace(\"ABC\", \"A${BC}\") => " + str.replace("ABC", "A${BC}"));
產生以下輸出:
str='ABCD DKABCED DLS ABC'
str.replaceAll("ABC", "A\\${BC}?") => A${BC}?D DKA${BC}?ED DLS A${BC}?
str.replace("ABC", "A${BC}?") => A${BC}?D DKA${BC}?ED DLS A${BC}?
這裏執行的圖像:
有人知道爲什麼嗎?
編輯:
只是爲了記錄。問題是,括號後面真的有一個字符。 應對和粘貼到Notepad ++後,我可以看到}?"
文本。不在Netbeans。 因此純粹引入了誤會。
你已經完全改變了代碼的問題。輸出不再與代碼匹配。 – 2015-02-17 22:52:33
當你移除'$'時會發生什麼? – Smit 2015-02-17 23:08:12
什麼都沒有,問題在於這個字符。 – Netto 2015-02-17 23:08:55