统计并筛选字符
实用的字符处理任务
统计并筛选字符 是 CoddyKit 上的免费 Java Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。
使用循环进行计数
要统计字符数量,请保留一个计数变量,并在每次条件匹配时将其加 1。
将计数器初始化为 0,遍历每个字符,并在字符通过检查时增加计数。
int count = 0;
for (char c : "hello".toCharArray()) {
count++;
}统计元音字母
这里通过检查每个字符是否属于元音集合来统计元音字母。
我们会先将字符转换为小写,这样 'A' 和 'a' 的统计方式就相同了。
public class Main {
public static void main(String[] args) {
String text = "Java Rocks";
int vowels = 0;
for (char c : text.toCharArray()) {
char low = Character.toLowerCase(c);
if (low == 'a' || low == 'e' || low == 'i' || low == 'o' || low == 'u') {
vowels++;
}
}
System.out.println(vowels);
}
}统计数字
要统计 String 中出现了多少个数字,请在循环中使用 Character.isDigit。
它会自动跳过字母和符号,因此计数器只会在遇到数字时递增。
public class Main {
public static void main(String[] args) {
String text = "abc123x9";
int digits = 0;
for (char c : text.toCharArray()) {
if (Character.isDigit(c)) digits++;
}
System.out.println(digits);
}
}统计字母
将条件替换为 Character.isLetter,即可统计字母字符。
整体结构保持不变:循环、测试,然后递增。只有条件发生了变化。
public class Main {
public static void main(String[] args) {
String text = "a1 b2 c3";
int letters = 0;
for (char c : text.toCharArray()) {
if (Character.isLetter(c)) letters++;
}
System.out.println(letters);
}
}统计特定字符
要统计某个特定字符,请使用 == 将每个字符进行比较。
这里统计文本中出现字母 'a' 的次数。
public class Main {
public static void main(String[] args) {
String text = "banana";
int aCount = 0;
for (char c : text.toCharArray()) {
if (c == 'a') aCount++;
}
System.out.println(aCount);
}
}筛选字符
筛选是指构建一个新的 String,只保留您需要的字符。
这里通过将字符追加到结果 String 中来保留字母和数字,同时删除空格和标点符号。
public class Main {
public static void main(String[] args) {
String text = "a-b 1!2";
String clean = "";
for (char c : text.toCharArray()) {
if (Character.isLetterOrDigit(c)) clean += c;
}
System.out.println(clean);
}
}使用 StringBuilder
在较长的循环中使用 += 构建 String 会很慢,因为每一步都会创建一个新的 String。
StringBuilder 速度更快:追加字符,最后再调用 toString()。
public class Main {
public static void main(String[] args) {
String text = "H e l l o";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (!Character.isWhitespace(c)) sb.append(c);
}
System.out.println(sb.toString());
}
}删除空白字符
一种常见的筛选方式是使用 Character.isWhitespace 删除空格、制表符和换行符。
保留每个不是空白字符的字符,就能将文本紧密地连接起来。
public class Main {
public static void main(String[] args) {
String text = " J a v a ";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (!Character.isWhitespace(c)) sb.append(c);
}
System.out.println(sb.toString());
}
}先筛选再统计
您可以组合这些思路:先筛选出干净的 String,然后测量它的长度。
这里通过筛选并读取 length(),只统计字母。
public class Main {
public static void main(String[] args) {
String text = "a1b2c3";
StringBuilder sb = new StringBuilder();
for (char c : text.toCharArray()) {
if (Character.isLetter(c)) sb.append(c);
}
System.out.println(sb.length());
}
}统计大写和小写字母
您可以同时跟踪多个计数器。这里分别统计大写字母和小写字母。
每个字符都会经过两次相互独立的检查,并使符合条件的计数器递增。
public class Main {
public static void main(String[] args) {
String text = "JavaCode";
int upper = 0, lower = 0;
for (char c : text.toCharArray()) {
if (Character.isUpperCase(c)) upper++;
if (Character.isLowerCase(c)) lower++;
}
System.out.println(upper + " " + lower);
}
}筛选为何重要
统计和筛选是日常编程中的常见任务,例如验证密码、清理用户输入或统计字符类型。
同一种循环和测试模式可以处理所有这些任务。只需改变条件,使其符合您的目标。
if (Character.isDigit(c)) {
count++;
}快速检查
测试您对字符统计和筛选的理解。
回顾
统计使用一个计数器,当字符通过类似 isDigit 或 == 的测试时,就将计数器递增。
筛选会构建一个新的 String,只保留需要的字符;为了提高速度,最好使用 StringBuilder。改变条件即可统计元音字母、字母或数字,或者删除空白字符。
常见问题解答
「统计并筛选字符」课时是免费的吗?
是的 — 「统计并筛选字符」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。
「统计并筛选字符」这节课中我会学到什么?
实用的字符处理任务 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「统计并筛选字符」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。