テストと拡張
エッジケースでテストし、小さな改善を追加します。例はシンプルで読みやすく保ちます。
「テストと拡張」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
テストする理由
なぜテストするのでしょうか。小さなテストによって、予想外の問題を早い段階で見つけられます。まず簡単な入力から始め、少しずつエッジケースを追加します。
正常系
まず、分かりやすい単語を含む短い文を試します。合計数が一致し、上位の単語も妥当になることを確認します。
エッジケース
エッジケースには、空文字列、空白だけの文字列、句読点だけの文字列、単語に数字が混在する入力、連続した空白などがあります。どの場合もクラッシュせず、妥当なカウント結果になるはずです。
正規化の確認
大文字・小文字の混在やコンマを使って、正規化を確認します。小文字化して不要な文字を取り除いた後は、Hello と HELLO が同じ単語としてカウントされるはずです。
小さな拡張
小さな拡張として、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());
}
}
}
正規化のテスト
確認問題:正規化(大文字・小文字と句読点)を確認するには、どのような入力が最適ですか。
まとめ
まとめ:正常系とエッジケースをテストし、1 文字の単語を読み飛ばすなどの小さな拡張も追加しました。例は短く、読みやすく保ちます。
よくある質問
「テストと拡張」レッスンは無料ですか?
はい。「テストと拡張」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「テストと拡張」で何を学びますか?
エッジケースでテストし、小さな改善を追加します。例はシンプルで読みやすく保ちます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「テストと拡張」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。