0Pricing
Java Academy · 课时

测试与扩展

使用边界情况进行测试,并添加细小的改进。让示例保持简单易读。

测试与扩展 是 CoddyKit 上的免费 Java Academy 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 3 节课。

为什么要测试

为什么要测试? 小型测试可以尽早发现意外情况。我们先从简单的输入开始,再逐步添加边界情况。

正常路径

首先尝试一个包含清晰单词的短句。请预期总数相符,并且排名靠前的单词符合直觉。

边界情况

边界情况包括:空字符串、只包含空格的字符串、只包含标点的字符串、与单词混合的数字,以及连续空格。每种情况都不应导致程序崩溃,并且都应产生合理的计数。

规范化检查

请使用大小写混合并包含逗号的文本来验证规范化。转换为小写并清理后,大小写不同的同一个单词应被计为同一个词。

小型扩展

小型扩展包括:忽略 a 或 an 这类过短的单词,将前 N 个单词设置为一个变量,并允许以任意顺序打印计数相同的单词。请保持改动最少且易于阅读。

代码:小型测试

运行:每个示例都会打印总数和唯一词数。这有助于验证对空输入、空格、标点和大小写混合情况的处理。

public class Main {
  public static void main(String[] args) {
    // Very small test set for beginners. Each case prints a short result.
    String[] samples = new String[] {
      "Hello world hello",
      "",                            // empty
      "   ",                         // spaces
      "Hello, HELLO, hello!",        // mixed case and punctuation
      "Numbers 1 2 3 and words",     // numbers and words
      "Only... punctuation!!!"       // punctuation only
    };

    for (int t = 0; t < samples.length; t = t + 1) {
      String text = samples[t];
      System.out.println("-- Case " + (t + 1) + " --");
      // 1) Lowercase
      String lower = text.toLowerCase();
      // 2) Replace non letters with spaces
      String cleaned = lower.replaceAll("[^a-z]+", " ");
      // 3) Split on spaces and filter empties
      String[] tokens = cleaned.trim().split("\\s+");

      java.util.Map<String, Integer> freq = new java.util.HashMap<>();
      int total = 0;
      for (int i = 0; i < tokens.length; i = i + 1) {
        String w = tokens[i];
        if (w.length() == 0) continue;
        // Optional tiny extension: skip one letter words like "a"
        if (w.length() == 1) continue;
        total = total + 1;
        Integer c = freq.get(w);
        if (c == null) freq.put(w, 1);
        else freq.put(w, c + 1);
      }

      // Print a very small summary (no top N here to keep it simple)
      System.out.println("Total words: " + total);
      System.out.println("Unique words: " + freq.size());
    }
  }
}

规范化测试

快速检查:哪种输入最适合检查规范化(大小写和标点)?

回顾

回顾:我们测试了正常路径和边界情况,然后添加了跳过单字母单词等小型扩展。请保持示例简短易读。

常见问题解答

「测试与扩展」课时是免费的吗?

是的 — 「测试与扩展」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 3 节课。

「测试与扩展」这节课中我会学到什么?

使用边界情况进行测试,并添加细小的改进。让示例保持简单易读。 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。

「测试与扩展」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 需求与设计
  2. 实现
  3. 测试与扩展
← 返回 Java Academy