1. test 1
  2. test 2
  3. test 3
  4. test 4
コース一覧
Java道場 ハレノヒ珈琲のレジを作る10問
レシートを整形して返せ

Java道場 ハレノヒ珈琲のレジを作る10問

Java入門で身に付けた技を、カフェのレジ開発で試す演習専用コースです。解説はありません。依頼と完成条件だけを読み、白紙から自分で組み立てます。手が止まったときのために、方針・使う構文・部分解の3段階のヒントを各問に用意しています。レシートの桁揃えから始まり、型の落とし穴、条件分岐、switch、配列の集計、メソッドへの分割、文字列の比較を経て、最後はクラス設計とレジアプリの統合まで、10問で Java の主要な道具を一巡します。1問15分から45分、全10問で約5時間です。Java入門を終えて「読めるけれど自分では書けない」と感じている方に向いています。

1
初段
01. レシートを整形して返せ15分
02. 税込計算の切り捨て事故を防げ15分
03. 注文金額でランク判定20分
04. メニュー番号で注文を受けろ20分
2
中段
01. 複数注文の合計と件数25分
02. 会計処理をメソッドに分けよ25分
03. 本日の注文を配列で管理せよ30分
04. 売れ筋メニューを探せ30分
3
師範
01. Order クラスを設計せよ35分
02. 総合 レジアプリ一気通貫45分

レシートを整形して返せ

初段 / 目安 15分

カフェ「ハレノヒ珈琲」のカウンターで、店長の陽葵さんがレシートの束を扇のように広げています。「まずレシート! 商品名は左揃え、金額は右揃えでピシッと。うちのレシートは美しくありたいの」。電卓と手書き伝票でやりくりしてきた会計は、そろそろ限界のようです。

手書きのレシートは、書く人によって位置がずれます。プログラムに任せるなら、そのずれは無くせます。桁を揃えるというのは、見た目の趣味ではなく、読み間違いを減らす仕事です。

ここで作るのは、レシートの1行だけです。商品名と金額を受け取って、決まった幅に収めた1行を組み立てて返します。

完成条件

商品名と金額から、レシート1行の文字列を返すメソッド formatLine(String name, int price) を作ってください。

  • 商品名は左揃えで幅10。うしろを半角スペースで埋めます
  • 金額は右揃えで幅5。前を半角スペースで埋めます
  • 商品名と金額のあいだに、余分な区切り文字は入れません

formatLine("珈琲", 450) なら、次の1行になります。全角の商品名は2文字ぶんではなく2文字として数えます。幅10というのは文字数のことです。

プレーンテキスト

珈琲 450

商品名「珈琲」が2文字、うしろに8個のスペース、そのあと金額 450 が幅5の右揃えなので前に2個のスペース、続けて 450 です。

進め方

白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。

開かずに10分粘って進まないなら、①だけ開けてください。粘る時間そのものには価値がありません。価値があるのは、自分で書いた行が動いた瞬間です。

文字列を1文字ずつ足していく道もありますが、Java には書式を指定して文字列を組み立てる道具が最初から入っています。印字ではなく、組み立てた文字列を返すのが今回の仕事です。

要件

  1. メソッド名は formatLine、引数は String name と int price の2つ
  2. 商品名は左揃えで幅10にすること
  3. 金額は右揃えで幅5にすること
  4. 商品名と金額のあいだに区切り文字を入れないこと
  5. System.out.println ではなく return で文字列を返すこと

入出力例

formatLine("珈琲", 450) → "珈琲 450" formatLine("抹茶ラテ", 520) → "抹茶ラテ 520" formatLine("シフォンケーキ", 480) → "シフォンケーキ 480" formatLine("アイスコーヒーS", 1200) → "アイスコーヒーS 1200"

ヒント

前のヒントを開くと次が開きます。開かずに解けると未開封クリアです

①方針 幅を決めた埋め方は自分でスペースを数えなくても書けます。左揃えと右揃えを1つの書式にまとめて、できた文字列を返します

ヒント 2ヒント 1 を開くと読めます
ヒント 3ヒント 2 を開くと読めます
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/09

関連レッスン

  • 税込計算の切り捨て事故を防げ

    整数のまま計算すると1円ずれます。どこでキャストするかが分かれ目です。

  • 注文金額でランク判定

    お会計の金額を3つに分類します。境界のちょうどの値でつまずかないようにします。

  • メニュー番号で注文を受けろ

    番号から商品名と価格を引きます。知らない番号が来たときの答えも決めます。

  • 複数注文の合計と件数

    注文の配列を走査して、品数と合計を1つの報告にまとめます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • カウンタ数を保持して増減する典型 UI
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
main.java
学習モード
エディタを読み込んでいます

メモ

レシートを整形して返せ

⌘S で保存