为什么输出显示3而不是java中的char

时间:2017-07-13 10:19:14

标签: java unicode char ascii arithmetic-expressions

我理解为什么输出是3而不是char(' 5' unicode字符)

char c='5';
c = (char) (c - 2);
System.out.println(c); 

你可以解释一下代码ASCII和unicode字符之间的区别吗?

提前谢谢你:)

2 个答案:

答案 0 :(得分:2)

这是一个角色。这是一个代表数字3的字符,就像键盘上的字符“3”一样。

当你从一个角色中减去一个角色时,你会在此之前得到一个角色。例如,'B' - 1 = A

你从字符'5'开始并减去2,给出字符'3'。如果你减去6,你就不会得到-1,你会得到一个随机字符('/'我认为)。

基本上这个减法是有效的,因为字符 0 - 9是连续存储的。

答案 1 :(得分:1)

输出为char '3',而不是数字3

当您从字符2中减去'5'并将结果转换为char时,您会获得字符'3'

char类型是数字基元类型。每个字符具有0到2 ^ 16-1之间的对应整数值。字符' 3'的整数值小于2的字符值' 5'。