小编典典

Java:从char中减去'0'得到一个整数……为什么这样做有效?

java

这工作正常:

int foo = bar.charAt(1) - '0';

但这不是-因为bar.charAt(x)返回一个char:

int foo = bar.charAt(1);

似乎从char中减去‘0’会将其强制转换为整数。

为什么或如何减去字符串“ 0”(或它是一个字符?)将另一个字符转换为整数?


阅读 1046

收藏
2020-09-08

共1个答案

小编典典

这是一个聪明的把戏。字符实际上与短裤的类型/长度相同。现在,当您有一个表示ASCII / Unicode数字的字符(如“ 1”),并从中减去最小的ASCII
/ Unicode数字(例如“ 0”)时,将剩下该数字的对应值(因此1)

因为char与short相同(尽管是unsigned short),所以可以安全地将其强制转换为int。如果涉及算术运算,则转换总是自动完成

2020-09-08