You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:50:05