为什么对于大写和小写文字都得到相同的结果?例如:

char ch1 = 'A';
char ch2 = 'a';
char ch3 = 'Z';
char ch4 = 'z';

print("ch1 -- > " + Integer.toBinaryString(Character.getNumericValue(ch1)));
print("ch2 -- > " + Integer.toBinaryString(Character.getNumericValue(ch2)));
print("ch3 -- > " + Integer.toBinaryString(Character.getNumericValue(ch3)));
print("ch4 -- > " + Integer.toBinaryString(Character.getNumericValue(ch4)));

结果我得到:
ch1 -- > 1010
ch2 -- > 1010
ch3 -- > 100011
ch4 -- > 100011

并没有真正看到“A”和“a”之间的区别。即使我使用UTF格式的字符文字(对于'A'使用\ u0041,对于'a'使用\ u0061),我的确得到相同的结果。

最佳答案

它的行为与documented完全相同:

字母AZ以大写字母('\ u0041'到'\ u005A'),小写字母('\ u0061'到'\ u007A')和全角变体('\ uFF21'到'\ uFF3A'和'\ uFF41'到'\ uFF5A')之间的数值从10到35。

基本上,这意味着在解析十六进制(例如)0xfa == 0xFA时,正如您所期望的那样。

我只希望大小写在使用诸如base64之类的东西时能够起作用。

07-26 07:44