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

回到顶部