Files
stringcheck/1日目_実装ミッション指示書.md
2026-10-07 08:42:51 +09:00

111 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 ドキュメント(日本語版)](https://docs.oracle.com/javase/jp/21/docs/api/index.html) で調べてください。「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` によるファイル出力)