0Pricing
Java Academy · 课时

统计并筛选字符

实用的字符处理任务

统计并筛选字符 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. char 基本类型
  2. 字符辅助方法
  3. 遍历字符
  4. 统计并筛选字符
← 返回 Java Academy