有人可以向我解释这里发生了什么:
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没有成功一样。否则这意味着有两种语义等效的方式来执行相同的操作但结果不同?