Java:用char减去char是什么意思?
最近,在进行程序时,我遇到了一个问题。以下是程序的一部分
public static int numberNeeded(String first, String second) { int[] lettercounts = new int[26];
for(char c : first.toCharArray()){
lettercounts[c-'a']++;
}
我不明白这行代码的作用:
lettercounts[c-'a']++;
我猜想它正在递增lettercounts数组中特定字符的值(最初为0);我猜’a’的索引是0,’z’的索引是25。但是我想了解那小段代码是如何工作的。
回答:
目的是计算每个字符的出现次数。
c - 'a'
是一种获取字符在字母表中位置的巧妙方法。'a' - 'a'
会给你0。'b' - 'a'
会给你1。'c' - 'a'
会给你2,依此类推。
该值用作数组的索引(如您正确指出的那样,它以零初始化),并且计数递增。
值得注意的是,如果a-z
字符串中不存在任何其他字符(包括大写字符),这将中断,并且您会看到一个IndexOutOfBoundsException
以上是 Java:用char减去char是什么意思? 的全部内容, 来源链接: utcz.com/qa/425117.html