int[] a = new int[26] 是创建了一个长度为26的数组,这个数组元素的默认值全是0,这个数组在该代码块中的作用是用来存储26个英文字母
str.charAt(i) 是取出输入的字符串的第i个字符 减去字符a是算出这个字符对应在数组中的下标
a[str.charAt(i)-‘a']++;就是找到这个字符在数组中的下标,然后进行自增,比如当前字符是‘a’那么对应数组下标就是0,这行代码的执行等价于a[0]=a[0]+1
这个循环遍历完就可以知道输入的字符串中各有多少个字符
前面是定义了26个元素的数组a
后面str中第i个字符对应的a的+1
str.chat(i)-'a' 得到从‘a'开始的一个数字,正好对应a的下标。a数组统计字母a到z的个数