这很好用:
int foo = bar.charAt(1) - '0';
Run Code Online (Sandbox Code Playgroud)
但这不是 - 因为bar.charAt(x)返回一个char:
int foo = bar.charAt(1);
Run Code Online (Sandbox Code Playgroud)
似乎从char中减去'0'会将其转换为整数.
为什么或如何减去字符串'0'(或者它是char?)将另一个char转换为整数?
Luk*_*der 35
这是一个聪明的伎俩.char实际上与短裤的类型/长度相同.现在当你有一个表示ASCII/unicode数字(如'1')的字符,并从中减去最小的ASCII/unicode数字(例如'0'),那么你将留下数字的相应值(因此,1)
因为char与short相同(尽管是unsigned short),所以可以安全地将它转换为int.如果涉及算术,则铸件总是自动完成
DwB*_*DwB 13
这是一个旧的ASCII技巧,适用于从'0'开始依次排列数字'0'到'9'的任何编码.在Ascii中,'0'是一个值为0x30且'9'为0x39的字符.基本上,如果你有一个数字的字符,减去'0'"将"转换为它的数字值.
我不得不同意@Lukas Eder并暗示这是一个可怕的伎俩; 因为这个动作的意图从代码中明显看出0%.如果您正在使用Java并且String包含数字,并且您希望将其转换String为int我建议您使用的数字Integer.parseInt(yourString);.
这种技术对于未来的维护程序员来说具有明显的好处.
| 归档时间: |
|
| 查看次数: |
31263 次 |
| 最近记录: |