用for循环遍历字符串,通过charAt(i)获取字符并比对计数,配合length()实现完整遍历,无需额外工具类。

用循环统计字符出现次数,核心是遍历字符串每个字符,逐个比对并计数。不需要额外工具类,纯 Java 基础就能完成。
用 for 循环遍历字符串
String 提供了 charAt(i) 方法获取指定位置的字符,配合 length() 可以完整遍历:
- 定义一个计数器变量(如 int count = 0)
- 用 for (int i = 0; i 遍历每个索引
- 每次取出 str.charAt(i),和目标字符比较(注意大小写敏感)
- 相等就 count++
例如统计字符串 "hello world" 中字母 'l' 出现次数:
String str = "hello world";
char target = 'l';
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == target) {
count++;
}
}
System.out.println(count); // 输出 3
用增强 for 循环(for-each)更简洁
Java 5 起支持将字符串转为字符数组后使用增强 for 循环,代码更直观:
立即学习“Java免费学习笔记(深入)”;
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 调用 str.toCharArray() 得到 char[]
- 用 for (char c : charArray) 直接遍历每个字符
- 判断 c == target 并累加
同样统计 'l':
String str = "hello world";
char target = 'l';
int count = 0;
for (char c : str.toCharArray()) {
if (c == target) {
count++;
}
}
System.out.println(count); // 输出 3
区分大小写与空格处理
默认比较是严格区分大小写和空格的。如果想忽略大小写,可统一转成小写再比:
- 把字符串和目标字符都转小写:Character.toLowerCase(c) == Character.toLowerCase(target)
- 或先调用 str.toLowerCase() 再遍历(注意原字符串不变)
- 空格、标点、数字都是合法字符,也会被正常计入——如果不想统计空格,加条件 c != ' '
统计多个字符或所有字符频次
单次循环只能统计一个目标字符。若需统计多个,可封装成方法反复调用;若要一次性得到所有字符频次,可用 Map<Character, Integer> 配合循环记录:
- 遍历每个字符 c
- 查 Map 中是否已有该字符:有则值 +1,无则 put(c, 1)
- 最后 Map 就是各字符及其出现次数
这是扩展用法,但底层仍是靠一次循环完成,效率高且清晰。

















