我可能遗漏了一些东西,但是为什么这两个数值等于-1
System.out.println(Character.getNumericValue(Character.MAX_VALUE));
System.out.println(Character.getNumericValue(Character.MIN_VALUE));返回:
-1
-1发布于 2010-01-27 23:30:52
getNumericValue()会将实际表示数字的字符(如“正常”数字0-9,但也包括其他脚本中的数字)转换为它们的数字值。Character.MAX_VALUE和Character.MIN_VALUE表示的字符没有这样的数值;它们不是数字。根据API doc的说法
如果字符没有数值,则返回-1。
发布于 2010-01-27 23:40:18
getNumericValue()仅适用于表示数字的字符,如数字'0'到'9'。为了方便起见,它还将ASCII码字母视为以36为基数的数字系统中的数字(因此'A'为10,'Z'为35)。
这一点愚弄了很多人。如果您想知道字符的Unicode值,您所要做的就是将其转换为int
System.out.println((int)Character.MAX_VALUE);
System.out.println((int)Character.MIN_VALUE);发布于 2010-01-27 23:32:32
因为Character.MAX_VALUE和Character.MIN_VALUE不是数字。当参数不是映射到数字的字符时,Character.getNumericValue(char)返回-1。
数字字符(0-9)、字母字符(A-Z)和其他unicode数字字符与值关联。我不知道映射的所有其他字符。但是很多字符只会返回-1。
https://stackoverflow.com/questions/2148096
复制相似问题