这段代码使用 Java 语言实现了一个字符串字符计数统计功能。代码中,变量 count 是一个长度为 53 的整型数组,用于存储每个字符出现的次数。字符串 s 是要统计的字符串,变量 n 记录了字符串的长度。

代码通过遍历字符串的每个字符,并根据字符类型和上下文关系,来确定每个字符出现的次数。具体逻辑如下:

  1. 遍历字符串的每个字符,使用变量 c1 记录当前字符。
  2. 首先判断当前字符是否是倒数第二个或倒数第一个字符,因为这两个字符需要单独判断。如果是倒数第二个字符,则 tcount 的值为 3;如果是倒数第一个字符,则 tcount 的值为 1(如果与前一个字符相同)或 3(如果与前一个字符不同)。
  3. 如果当前字符不是倒数第二个或倒数第一个字符,则根据当前字符和后两个字符的关系,来确定 tcount 的值。如果当前字符与下一个字符相同,则 tcount 的值为 1;如果当前字符与下一个字符不同,但与下下个字符相同,则 tcount 的值为 2;如果当前字符与下一个字符和下下个字符都不同,则 tcount 的值为 3。
  4. 根据当前字符的类型(大写字母、小写字母或其他字符),更新计数器 count 的对应位置。如果当前字符是大写字母,则将 tcount 的值加到 count 数组中对应位置上(通过将字符的 ASCII 码减去 64 得到对应的数组索引);如果当前字符是小写字母,则将 tcount 的值加到 count 数组中对应位置上(通过将字符的 ASCII 码减去 70 得到对应的数组索引);如果当前字符不是字母,则将 tcount 的值加到 count 数组的第一个位置上。
  5. 在遍历完所有字符后,再次遍历 count 数组,输出每个字符的计数结果。如果某个位置上的计数结果不为 0,则输出对应字符和计数结果。

代码示例:

int[] count = new int[53];
String s = 'AAABCBCB';
int n = s.length();
char c1;

for (int i = 0, tcount = 0; i < n; i++) {
    c1 = s.charAt(i);
    // 最后两个键单独判断
    if (i > n - 3) {
        if (i > n - 2) {
            tcount = 3;
        } else {
            tcount = c1 == s.charAt(i + 1) ? 1 : 3;
        }
    } else {
        tcount = c1 == s.charAt(i + 1) ? 1 : c1 == s.charAt(i + 2) ? 2 : 3;
    }
    // 更新计数器
    if (c1 >= 'A' && c1 <= 'Z') {
        count[c1 - 64] += tcount;
    } else if (c1 >= 'a' && c1 <= 'z') {
        count[c1 - 70] += tcount;
    } else {
        count[0]++;
    }
    tcount = 0;
}

for (int i = 1; i < count.length; i++) {
    c1 = (char) (i > 26 ? i + 70 : i + 64);
    if (count[i] != 0) {
        System.out.println(c1 + "位置的烤串转了" + count[i] + "圈");
    }
}

这段代码的逻辑清晰易懂,可以作为学习 Java 字符串处理和字符计数统计的示例代码。

Java 字符串字符计数统计代码详解

原文地址: https://www.cveoy.top/t/topic/4yv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录