带字符的整数算术

Ben*_*Ben 2 java

我有一个简单的代码块,有人可以向我解释为什么这在Java中可以接受吗?

int a = 10;
int c = 'A' + (a -1);
System.out.println(c);
Run Code Online (Sandbox Code Playgroud)

在编译器中显示的结果是:74.那么七十年代的价值究竟来自哪里呢?谢谢你的回答.

vin*_*aud 5

在Java中,a char可以(显式或隐式)转换为int,然后使用与该字符关联的ASCII值.

在你的情况下,七十年代来自角色'A'.该字符的ASCII值为65.因此系统隐含地进行了转换'A' ? 65.你的计算是:

c = 'A' + (a-1)
 ?
c = 65 + (10-1)
 ?
c = 74
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢,伙计.我不知道字符可以隐式转换为Int类型. (2认同)