Java Char to Integer

时间:2014-09-24 00:28:12

标签: java

我知道这可能是一个基本问题。但我想说清楚。 如果我有一个具有值' 9'的java char c,我可以通过执行以下操作将其转换为int: c - ' 0' ? 我曾经玩过这个,从来没有遇到过问题,但是有人告诉它错了?为什么?

2 个答案:

答案 0 :(得分:5)

是的,你可以。但是,我强烈建议您使用Character.digit(char, int)int基数),例如

char ch = '9';
int i = Character.digit(ch, 10);
System.out.printf("ch = %c, i = %d%n", ch, i);

我用你的方法看到的唯一问题是它有点复杂,你应该验证范围

if (ch >= '0' && ch <= '9') 

答案 1 :(得分:5)

我不认为这是错的,你可以做到。

int x = '9' - '0';

但如果你也想让它适用于十六进制字符'A'= 10,'B'= 11等,你可以这样做

int x = Character.getNumericValue('9');

编辑:根据这篇文章中的其他答案 Character.getNumericValue实际上会一直到'Z'= 35,所以如果你想安全使用

int x = Character.digit('9', 10);  // for base 10
int x = Character.digit('9', 16);  // for base 16
int x = Character.digit('B', 16);  // for base 16