字符转换为整数,可有人请这到底是怎么回事向我解释:在Java中
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
这将打印i: 43 ch:-1
。这是否意味着我必须依靠原始转换将char
转换为int
?那么如何将Character
转换为Integer
?
编辑:是的,我知道Character.getNumericValue
回报-1
如果它不是一个数值,并且对我来说很有意义。问题是:为什么做原始转换返回43
?
EDIT2:43
是+
的ASCII,但我希望演员要能成功,就像getNumericValue
没有成功。否则,这意味着有两种语义等价的方法来执行相同的操作,但结果不同?
那你希望得到,而不是'43'? –
我不认为'getNumericValue'的确如你所想。这是一种将字符转换为整数的实用程序方法(如字符'5'到整数5中)。这与cast(将字符'5'转换为整数53)不同。 – Aurand
关键是铸造不会返回数字的数字值。这两个操作做了两件不同的事情。 – SLaks