用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 <h3>用增强 for 循环(for-each)更简洁</h3> <p>Java 5 起支持将字符串转为字符数组后使用增强 for 循环,代码更直观:</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill8775" title="Java Maven Common"><img src="https://img.php.cn/upload/skill/000/000/081/179222954019613.jpg" alt="Java Maven Common" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill8775" title="Java Maven Common" class="overflowclass">Java Maven Common</a> <p class="overflowclass">Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。</p> </div> <a rel="nofollow" href="/xiazai/skill8775" title="Java Maven Common" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
- 调用 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
- 遍历每个字符 c
- 查 Map 中是否已有该字符:有则值 +1,无则 put(c, 1)
- 最后 Map 就是各字符及其出现次数
这是扩展用法,但底层仍是靠一次循环完成,效率高且清晰。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










