在指定unicode文字的java代码中获取空字符文字错误

Pau*_*lor 7 java unicode unicode-literals

为什么这个代码

 public class Apostrophier
{
    public static String replace(String s)
    {
        return s.replace('\u0092','\u0027');
    }
}
Run Code Online (Sandbox Code Playgroud)

'空字符文字'

当我尝试编译?

Roh*_*ain 11

源文件中的unicode代码点将替换为它们所代表的实际字符.因为'\u0027''(撇号).因此,您的return语句将替换为:

  return s.replace('\u0092',''');  
Run Code Online (Sandbox Code Playgroud)

注意: \u0092也将被控制字符替换.

因此,第二个参数是无效的字符文字.你可以\'直接使用.


Daw*_*ica 5

替换unicode序列是编译过程中非常早期的一步.特别是,它在解析文字之前发生.因此,当解析文字的时候,\u0027已经被替换了'.因此,在逗号之后,你有''',编译器无法理解.