爲什麼這個代碼獲取Java代碼中的空字符文字錯誤指定的unicode文字
public class Apostrophier
{
public static String replace(String s)
{
return s.replace('\u0092','\u0027');
}
}
給
「空字符文字」
,當我嘗試編譯?
爲什麼這個代碼獲取Java代碼中的空字符文字錯誤指定的unicode文字
public class Apostrophier
{
public static String replace(String s)
{
return s.replace('\u0092','\u0027');
}
}
給
「空字符文字」
,當我嘗試編譯?
源文件中的unicode代碼點被它們表示的實際字符替換。由於'\u0027'
是'
(撇號)。所以,你的return語句替換爲:
return s.replace('\u0092',''');
注:\u0092
也將受到控制字符替換。
因此,第二個參數是一個無效的字符文字。你可以直接使用\'
。
替換unicode序列是編譯過程的一個非常早期的步驟。特別是它在解析文字之前就發生了。因此,當分析文字時,\u0027
已被替換爲'
。因此,逗號後面有'''
,這是編譯器無法理解的。
你也可以說's.replace('\ u0092','\ u005c \ u0027')'!!!不是你想要的。 ('\ u005c'是一個反斜槓。) – ajb
啊,當然,謝謝你 –