Java(或任何其他第三方庫)是否提供了一個基於字符代碼替換字符的API(當然在已知的Charset
內)而不是正則表達式?例如,要更換一個給定的字符串中的單引號雙引號,一個可以使用:用字符代碼而不是正則表達式替換字符串?
String noDoubles = containsDoubles.replace("\"", "'");
然而,對於一個雙引號的UTF-8字符的代碼是U+0022
。那麼有什麼可以搜索U+0022
字符的實例並用單引號替換它們嗎?
此外,不只是詢問這裏的雙/單引號,我正在談論字符代碼查找和替換任何2個字符。
我個人認爲'「\」「'更清楚你在做什麼,然後''\ u0022''。 – nickb
迴應一些答案已經發布:請勿在U + 0020至U + 007E範圍內使用Unicode文字('\ uhhhh')作爲字符。顯然,想象它們像字符串或字符文字中的其他轉義序列一樣工作(如'\ n'),但事實並非如此;在Java中,它們被解釋得更早並且可能會影響語法。只是爲了好玩,試着在你腦海中猜測它會輸出什麼:'System.out.println(「\ u005c \ u006n」.length());',然後嘗試一下並看看它實際輸出了什麼。 – ajb
@ajb這不會因爲非法的Unicode轉義碼而編譯(不允許使用「n」):http://ideone.com/pMyNY6 –