计算字母“ a”和“ z”之间的字符

时间:2019-03-30 18:30:10

标签: java char

我遇到了一个代码,该代码检查字符是否在'a'和'z'之间不区分大小写。但是,我不知道接下来要执行的操作是:

alphabets[c - 'a']++;

有人可以向我解释此代码吗?

alphabets = new int[26];
for (int i = 0; i < str.length(); i++)
{
    char c = str.charAt(i);
    if ('a' <= c && c <= 'z')
    {
        alphabets[c - 'a']++; // what does this do?
    }
}

2 个答案:

答案 0 :(得分:1)

此代码计算字符串中每个小写字母出现的次数。 alphabets是一个数组,其中第一个(即索引0)索引保存a的数量,第二个索引保存b s的数量,等等。

从字符中减去a将产生相对索引,然后++将增加该字母的计数器。

答案 1 :(得分:0)

Java中的char只是一个16位宽的小整数。一般而言,它持有的值是Unicode [除了:Java并不表示字符为“ ASCII”]分配给字符的值,但从根本上讲,char只是整数。因此'a'是整数0x0061,也可以写成97

因此,如果您的值在'a'到'z'范围内,那么您的值在97到122范围内。将'a'减去(减去97)将得出0到25的范围,即适合索引26个元素的数组alphabets