为什么十六进制在Java中不区分大小写?

ed *_*ran -1 java hex case-sensitive case-insensitive

如果Java是区分大小写的语言,那么为什么十六进制值不区分大小写?

int x = 0x21af3;
int y = 0X21AF3;

System.out.println(x==y);
Run Code Online (Sandbox Code Playgroud)

它返回true.任何人都可以解释为什么十六进制不区分大小写?

4ca*_*tle 8

因为Java语言规范说它不区分大小写.

根据3.10.1.整数文字:

十六进制数字由前导ASCII字符0x或0X后跟一个或多个散布有下划线的ASCII十六进制数字组成,并且可以表示正整数,零整数或负整数.

值为10到15的十六进制数字分别由ASCII字母a到f或A到F表示; 用作十六进制数字的每个字母可以是大写或小写.