那是什么('Z' - 'A')

时间:2013-05-15 14:26:56

标签: java

在Currency.java文件中有一行。

    private static final int A_TO_Z = ('Z' - 'A') + 1;

这是什么意思?我之前没有看到这个。什么是A_TO_Z的值以及使用'Z'代替数字的原因。

4 个答案:

答案 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)中减去第一个值给出了英语字母表的长度。在这种情况下,实际数值并不重要,并且代码或多或少是读者可自行解释的。如果使用的编码以不同方式扩展字母,则表达式将变得不正确。