【发布时间】:2017-12-18 01:38:57
【问题描述】:
我会理解为什么输出是 3 而不是 char('5' unicode 字符)
char c='5';
c = (char) (c - 2);
System.out.println(c);
你能解释一下代码 ASCII 和 unicode 字符之间的区别吗?
提前谢谢你:)
【问题讨论】:
-
减法将字符
'5'变成字符'3'。参见例如this ASCII table 了解原因。 -
“不是字符”是什么意思?这是字符
'3'- 不清楚你在问什么。 -
一个关键的概念区别是 ASCII 有一种编码,而 Unicode 有几种。现在您知道了,您可以忘记 ASCII。你不是——也可能永远不会——编写使用 ASCII 的代码。 XML、HTML 等使用 Unicode。 Java、.NET、JavaScript、SQL(NCHAR、NVARCHAR)使用 Unicode 的 UTF-16 编码。
char是一个 UTF-16 编码单元。
标签: java unicode char ascii arithmetic-expressions