Java字符统计代码中count[str.charAt(i)]++;语句解析及代码说明
Java字符出现次数统计代码详解
核心语句 count[str.charAt(i)]++; 解析
- 含义:
str.charAt(i)会取出字符串str中第i个位置的字符,在Java里char类型本质是对应的ASCII整数(比如字符'g'对应ASCII码103)。用这个整数作为数组count的下标,然后将该下标位置的数值自增1。 - 用途:实现字符出现次数的统计——每遍历到一个字符,就把该字符对应的计数加1。
- count数组存储内容:数组的下标对应字符的ASCII码值,数组元素的数值就是对应字符在输入字符串中出现的总次数。比如下标103对应的元素值,就是字符
'g'在字符串里出现的次数。
整段代码逐模块讲解
1. 常量定义
static final int MAX_CHAR = 256;
定义了ASCII字符集的总数量(0-255共256个),用来确定计数数组的大小,确保能覆盖所有ASCII字符的统计需求。
2. getOccurringChar统计方法
初始化计数数组
int count[] = new int[MAX_CHAR]; int len = str.length();
创建长度为256的int数组count,初始所有元素值都是0;同时获取输入字符串的长度,方便后续遍历。
第一遍历:统计字符出现次数
for (int i = 0; i < len; i++) count[str.charAt(i)]++;
遍历字符串的每个字符,通过核心语句完成每个字符的计数累加,最终count数组就存储了所有字符的出现次数。
第二遍历:去重并打印结果
char ch[] = new char[str.length()]; for (int i = 0; i < len; i++) { ch[i] = str.charAt(i); int find = 0; for (int j = 0; j <= i; j++) { if (str.charAt(i) == ch[j]) find++; } if (find == 1) System.out.println( "Number of Occurrence of " + str.charAt(i) + " is:" + count[str.charAt(i)]); }
- 创建和输入字符串等长的
ch数组,用来暂存遍历过的字符。 - 外层遍历每个字符,存入
ch数组后,用内层循环检查当前字符在ch的前i+1个位置中出现的次数(find)。 - 当
find == 1时,说明这是第一次遇到该字符(后续再遇到时find会大于1),此时从count数组取出该字符的总次数并打印,避免重复输出同一个字符的统计结果。
3. 主方法(测试入口)
public static void main(String[] args) { String str = "geeksforgeeks"; getOccurringChar(str); }
定义测试字符串"geeksforgeeks",调用统计方法执行字符计数并打印结果。
内容的提问来源于stack exchange,提问作者Pazhani_Kumar
相关产品推荐
相关产品推荐

