0Pricing
Java Academy · レッスン

テストと拡張

エッジケースでテストし、小さな改善を追加します。例はシンプルで読みやすく保ちます。

「テストと拡張」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 要件と設計
  2. 実装
  3. テストと拡張
← Java Academyに戻る