我是 Java 的新手,我无法理解这个结构:
public static int[] upperCounter(String str) {
final int NUMCHARS = 26;
int[] upperCounts = new int[NUMCHARS];
char c;
for (int i = 0; i < str.length(); i++) {
c = str.charAt(i);
if (c >= 'A' && c <= 'Z')
upperCounts[c-'A']++;
}
return upperCounts;
}
这个方法有效,但是 list[c-'A']++;
是什么意思?
最佳答案
c - 'A'
取 ['A' .. 'Z']
范围内的一个字符,然后减去 'A'
创建一个 [0 .. 25]
范围内的数值,这样它就可以用作数组索引。
upperCounts[c - 'A']++
使用其对应的索引 c - 'A'
增加字符 c
的出现次数>.
实际上,循环正在生成一个字符类型计数数组。
关于java - 使用 ASCII 表(Unicode 代码)计算数组中的每个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27630192/