有人可以向我解释这里发生了什么:
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
这打印i: 43 ch:-1
。这是否意味着我必须依靠原始转换来char
转换int
?那么如何将 a 转换Character
为Integer
?
编辑:是的,如果它不是数值,我知道Character.getNumericValue
返回,这对我来说很有意义。-1
问题是:为什么进行原始转换会返回43
?
Edit2: 43
是 ASCII 的+
,但我希望演员不会成功,就像getNumericValue
没有成功一样。否则这意味着有两种语义等效的方式来执行相同的操作但结果不同?