如何将char(数字0-9)转换为没有getNumericalValue的int?

时间:2014-11-19 15:47:39

标签: java casting char converter numeric

我想知道在不使用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) -> ?????

2 个答案:

答案 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