Java - 将unicode撇号分配给char

pri*_*srb 12 java unicode

我想将aphostrophe的值赋给char:

char a = '\'';
Run Code Online (Sandbox Code Playgroud)

但是我想使用untropode版本的撇号(\ u0027)来保持它与我的代码一致:

char a = '\u0027';
Run Code Online (Sandbox Code Playgroud)

但这样做会给出一个错误,说"未封闭的字符文字".

如何在代码中使用unicode代码时如何进行此分配?

T.J*_*der 12

原因\u0027不起作用的是编译器很早就处理了unicode转义,当然,它最终成为了' - 它终止了文字.编译器实际上看到了这个:

char a = ''';
Run Code Online (Sandbox Code Playgroud)

......这自然是一个问题.JLS在第3.10.4节(字符文字)中讨论了与换行相关的内容.

坦率地说,我觉得你最好写作

char a = '\'';
Run Code Online (Sandbox Code Playgroud)

...但是char是数字类型,所以你可以这样做:

char a = 0x0027;
Run Code Online (Sandbox Code Playgroud)

当然,你可以这样做:

char a = "\u0027".charAt(0);
Run Code Online (Sandbox Code Playgroud)

......但我认为我们都同意这有点矫枉过正.;-)

哦,还是看看Greg的答案:char a = '\u005c\u0027';(\u005c是的,当然,一个反斜杠-所以编译器看到的'\'').


Gre*_*reg 9

你也可以这样做

char a = '\u005c\u0027';
Run Code Online (Sandbox Code Playgroud)

其中\ u005c\的Unicode