char转int数值
这是大家经常会遇到的问题,下面列出三种常见方法:
(下面方法假设已经存在变量 char c = ’1‘
)
1.(int)(c - '0');
这种方法是最快捷简单的方法,巧妙利用'0'
字符。
2. Integer.parseInt(String.valueOf(c))
这种方法是将c转换为String,再转换为int。
3. Character.getNumbericValue(c)
Character
包装类提供的转换方法,但是这个方法会将'a'
转换为11
而不是97
! So weird!
详细参考java.lang.Character.getNumericValue()方法实例
"错误"方法:(转ASCII)
- 不可以
Integer.valueOf(c)
转换,该方法会得到ASCII码值。详见:Integer.valueOf详解 - 不可以使用
int i =(int)c
直接强转,会得到ASCII码值。 - 不可以使用
char c = (char) i;
,会得到ASCII码值为i的字符。
Tips:
char可以默认转为int,int i = 'b'
可以省略。
而int不会默认转为char,需要显式声明为char :char c = (char) i
。
int转char
建议使用(int)(c - '0')
总结:
(本文均为自己实验及调研结果,如有纰漏,望大家指正!)