在Currency.java文件中有一行。
private static final int A_TO_Z = ('Z' - 'A') + 1;
这是什么意思?我之前没有看到这个。什么是A_TO_Z的值以及使用'Z'代替数字的原因。
答案 0 :(得分:3)
使用此表达式,您将char
s视为int
s,使用字符的Unicode值而不是字符本身。
'Z' - 'A' + 1
将成为
90 - 65 + 1 (=26)
答案 1 :(得分:2)
讨厌。 'A'是A的ASCII值的char字面值(十进制为65)。 'Z'是90.所以A_TO_Z是26,是英文字母中的字母数。
答案 2 :(得分:2)
'Z'
是一个整数值为90
的字符
'A'
是一个char值,其整数值为65
。
90 - 65 + 1 = 26
答案 3 :(得分:1)
字符根据字符表中的值具有数值。该表达式利用了以下事实:从A到Z的所有字母在基础编码表中具有连续值,因此从最后一个(+ 1)中减去第一个值给出了英语字母表的长度。在这种情况下,实际数值并不重要,并且代码或多或少是读者可自行解释的。如果使用的编码以不同方式扩展字母,则表达式将变得不正确。