Files
java-cui-string-checker/doc/ミッション/1日目_実装ミッション指示書.md

7.4 KiB
Raw Blame History

1日目 実装ミッション指示書

この指示書について

このミッションは、「StringCheck 詳細設計書」で定義されている短文投稿プログラムの完成を目指す、複数日にわたる実装課題の1日目です。今日の講義で習った内容だけを使って、StringCheck.java の土台となる部分を組み立てます。

今日はまだ次のことを習っていません。使わないでください。

  • if / switch / for / while などの制御構文(ループ・条件分岐)
  • 独自のメソッドを定義すること(inputString() や setUpLogger() などは、まだ作りません)
  • 例外処理(try / catch)
  • ログ出力(Logger)

今日使ってよいもの

  • 基本データ型(int, double, boolean, char など)と変数宣言・リテラル
  • 算術演算子・比較演算子・論理演算子
  • 配列(1次元配列)の宣言・初期化
  • 標準入力から文字列を読み取る方法、文字列の前後の空白を除去する方法(★自分で調べること。下記「参考」を参照)

すべての処理は main メソッド1本の中に、上から順番に書き並べてください。メソッドへの切り出し(リファクタリング)は、メソッドの定義方法を習った後日のミッションで行います。

開発環境について(Eclipse)

本ミッションは Eclipse を使用する前提とします。あらかじめ Java プロジェクトを作成し、その中に StringCheck という名前のクラスを作成してください(クラス名に合わせて、Eclipseが自動的に StringCheck.java というファイルを作成します)。

  • コンパイルエラーの確認方法: javac コマンドは使いません。Eclipseはファイルを保存すると自動でコンパイルします。エディタの左端(行番号の横)や、Package Explorer上のファイル・プロジェクトのアイコンに赤い×印(エラーマーカー)が付いていなければ、コンパイルエラーはありません。
  • 実行方法: エディタ上で右クリック →「実行(Run As)」→「Java アプリケーション(Java Application)」を選択するか、ツールバーの緑色の実行ボタンを押してください。
  • 入力の方法: 実行すると画面下部に [コンソール](Console) ビューが開きます。コンソール内をクリックしてカーソルを合わせてから文字を入力し、Enterキーを押すとプログラムに入力を渡せます。

今日のゴール

StringCheck.java を作成し、次の一連の流れを、**検証(未入力チェック・文字数チェック)なしの「正常系のみ」**で動作させます。

いまなにしてる?
(ここでユーザーが文章を入力する)

↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓
(入力した文章がそのまま表示される)

進め方(3段階)

段階1:クラスの雛形とメッセージ配列の定義

  1. StringCheck という名前のクラスを作成し、public static void main(String[] args) を用意してください(他のメソッドはまだ作りません)。
  2. 画面に表示する以下の文言を、1つの String 配列にまとめて main の中に宣言・初期化してください。
    • "いまなにしてる?"
    • "何も入力されていません"
    • "投稿文が長すぎます"
    • "↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓"

この段階の完了確認

  • エディタおよびPackage Explorer上に赤いエラーマーカーが表示されていないこと(コンパイルエラーがないこと)
  • 配列の要素数が4つで、内容が上記と一字一句一致していること

段階2:標準入力の読み込みと空白除去

  1. main の中に直接、標準入力から1行分の文字列を読み込む処理を書いてください。
  2. 読み込んだ文字列の前後にある空白文字(半角スペース・全角スペースなど)を除去し、String 型の変数 str に格納してください。
  3. 動作確認のため、str の内容をそのまま画面に表示してください。

この段階の完了確認

  • Eclipseで実行し、[コンソール]に前後に半角・全角スペースを含む文章(例: 今日は晴れ )を入力すると、スペースが除去された状態(今日は晴れ)で表示されること

参考(自分で調べること)

「標準入力から1行読み取る方法」「文字列の前後の空白を除去する方法」は、Java SE 21 API ドキュメント(日本語版) で調べてください。「Java + 実現したいこと」で検索すると見つけやすくなります。自分で見つけたクラスやメソッドの仕様(引数・戻り値・挙動)は、必ず公式ドキュメントで裏を取ってから使用してください。

段階3:判定値の算出と、正常系のみの一連の流れの実装

  1. 段階2で str に格納した文字列の文字数をもとに、比較演算子を使って次の2つの真偽値(boolean)を求め、画面に表示してください。if 文はまだ使わず、値を表示するだけで構いません。
    • 空文字判定:str の文字数が 0 かどうか
    • 文字数超過判定:str の文字数が 140 を超えるかどうか
  2. 算術演算子を使って「残り入力可能文字数(140 - 文字数)」を計算し、画面に表示してください。
  3. 次の一連の流れを、main の中に上から順番に書き並べて完成させてください(検証は行わず、必ず投稿が成功する「正常系のみ」の流れです)。
    1. 配列から取り出した「いまなにしてる?」を表示する
    2. 段階2の読み込み処理で str に値を格納する
    3. 空行を1行表示する
    4. 配列から取り出した投稿完了バナーを表示する
    5. str の内容を表示する

この段階の完了確認(動作例)

Eclipseで実行し、[コンソール]で次のように動作することを確認してください。

いまなにしてる?
ラーメンを食べています

↓↓↓↓↓↓ 投稿されました ↓↓↓↓↓↓
ラーメンを食べています
  • 上記のように、入力した文章がそのまま投稿として表示されること
  • 真偽値・残り文字数の表示が、入力する文章の長さに応じて正しく変化すること(空文字を入力した場合や、141文字以上を入力した場合など、複数パターンを自分の目で確認すること)

提出物

  • 作成した StringCheck.java
  • 動作確認メモ(段階2・段階3の完了確認で、どんな入力を試して、どう表示されたかを簡単に記録したもの。詰まった点があれば併記してください)

今日は実装しないこと(翌日以降に扱います)

  • 未入力・文字数超過時に「再表示して入力させ直す」処理(if 文・ループが必要なため)
  • inputString() や setUpLogger() のような独立したメソッドへの切り出し
  • ログ出力(Logger によるファイル出力)