我想知道在不使用character.getNumericalValue的情况下将char数字(0-9)转换为int是否可行。演员也不可能。
此刻获取char的原始值会给出ascii值,这显然不是我想要的。
为了更清楚一点,我100%确定在我的代码中使用的char中除了0到9之间的数值之外,不会有任何其他类型的ascii值。
我只是在这里好奇(当我搜索它时无法在谷歌上找到这个)但是getNumericalValue的底层代码是什么?如果一个字符是数字的,它是如何找到的?有开关盒吗? (我真的希望不是,那会变脏!)
无论如何,这里有一些伪代码,说明了我想要完成的事情:
char c = '';
int i;
c = 1 caracter from user input (0-9)
i = c (to int) -> ?????
答案 0 :(得分:0)
char c = '9';
int val = (int)c - 48;
没有错误检查,这取决于您希望如何实现它以及输入是什么
答案 1 :(得分:0)
如果您100%确定char只有数字0-9,那么您可以将它转换为类似的int。
char c = '5';
int i = (int) c - 48;
如果您对代码beind getNumericalValue()感兴趣,请链接到Character open jdk源代码。 http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Character.java#Character