Dog*_*Dog 26 java unicode string-literals unicode-literals
class A {
public static void main(String[] args) {
System.out.println("\u2300");
System.out.println("\u10035");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以通过它写一条线(⌀)就好了,但十字符号没有出现,而只是打印数字5:
# javac A.java && java A
?
?5
Run Code Online (Sandbox Code Playgroud)
为什么?
Jon*_*eet 49
你正在寻找U + 10035,它在Basic Multilingual Plane之外.这意味着你不能\u
用来指定值,因为它只处理U + 0000到U + FFFF - 后面总是有四个十六进制数字\u
.所以目前你有U + 1003("MYANMAR LETTER GHA"),然后是'5'.
遗憾的是,Java没有提供字符串文字形式,这使得BMP之外的字符很容易表达.将它包含在文字(但仍然是ASCII)中的唯一方法是使用UTF-16代理对形式:
String cross = "\ud800\udc35";
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用32位代码点表单作为int
:
String cross = new String(new int[] { 0x10035 }, 0, 1);
Run Code Online (Sandbox Code Playgroud)
(这两个字符串相等.)
说了这么多,你的控制台仍然需要支持这个角色 - 你需要尝试一下才能找出它.
归档时间: |
|
查看次数: |
42915 次 |
最近记录: |