Dog*_*Dog 15 java unicode syntax
class A {
public static void main(String[] args) {
char a = '?';
System.out.println(a);
char castle = '';
System.out.println(castle);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以为颠倒的A做一个char很好,但是当我尝试使城堡char时它会得到3个编译错误.为什么?
$ javac A.java && java A
A.java:5: unclosed character literal
char castle = '';
^
A.java:5: illegal character: \57159
char castle = '';
^
A.java:5: unclosed character literal
char castle = '';
^
3 errors
Run Code Online (Sandbox Code Playgroud)
Lou*_*man 15
我怀疑城堡角色不适合单一char
,而是需要一个int
代码点.在这种情况下,您可以在String
文字中使用它,但不能在文字中使用它char
.
Character
状态的Javadoc :
char数据类型(以及Character对象封装的值)基于原始Unicode规范,该规范将字符定义为固定宽度的16位实体.此后,Unicode标准已更改为允许表示形式需要16位以上的字符.合法代码点的范围现在是U + 0000到U + 10FFFF,称为Unicode标量值.
所以我的猜测是该字符需要超过16位,因此需要将其视为int
代码点.