我有这些声明:
int \u65549 = 9;
System.out.println(\u65549);
这编译完美。并输出
9
但是:
System.out.println(Character.isJavaIdentifierStart(\u65549));
输出
false
我对这个话题做了一些研究。我阅读了文档,它说:
This method cannot handle supplementary characters. To support all Unicode characters, including supplementary characters, use the
isJavaIdentifierStart(int)
method.
然后我这样做了:
int x = \u65549;
System.out.println(Character.isJavaIdentifierStart(x));
但即使这样打印:
false
那么,这是否意味着 Java 对 \u65549
作为标识符感到困惑?
最佳答案
int \u65549 = 9;
System.out.println(Character.isJavaIdentifierStart(\u65549));
这里,\u65549
是一个变量的名称,它也恰好包含值 9
。它应该(并且确实)和你写的一样:
System.out.println(Character.isJavaIdentifierStart(9));
打印 false
,因为您不能拥有以空白字符开头的 Java 标识符(\u0009
是 HORIZONTAL TAB 的代码点,'\t'
).
关于java -\u65549 是有效的 Java 标识符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403412/