测试与扩展
使用边界情况进行测试,并添加细小的改进。让示例保持简单易读。
测试与扩展 是 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 反馈 — 无需本地设置。