Menu
Coddy logo textTech

高度な文字列フォーマット

CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 49/59。

Java での文字列フォーマットにより、フォーマット指定子を使用してフォーマットされた文字列を作成できます。最も一般的なものは、文字列用の %s、整数用の %d、小数用の %.2f です。

複数の値で文字列をフォーマットする:

String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);

上記のコードを実行した後、text は次の内容を含みます:

Name: John, Age: 25

小数点以下の桁数を指定して小数値をフォーマットする:

double price = 19.99;
String formatted = String.format("Price: $%.2f", price);

上記のコードを実行した後、formatted には次のものが含まれます:

Price: $19.99

challenge icon

チャレンジ

簡単

formatData という名前のメソッドを作成し、4つの引数を受け取るようにします:

  1. 商品名のための String (name)
  2. 商品価格のための double (price)
  3. 数量のための integer (quantity)
  4. 出力フォーマットタイプのための String (format)

このメソッドは、以下のタイプに基づいてデータをフォーマットするべきです:

  • "basic": "ITEM: {name}, PRICE: ${price}" を返す
  • "detailed": "PRODUCT: {name}\nPRICE: ${price}\nQUANTITY: {quantity}" を返す
  • "total": "TOTAL FOR {quantity}x {name}: ${total}" を返す (total = price * quantity) すべての価格は正確に2桁の小数点でフォーマットされるべきです。

戻り値のメッセージ:

  • 入力が null または無効なフォーマットの場合: "Invalid input" を返す

チートシート

Java での文字列フォーマットは、String.format() を使用してフォーマット指定子を使用します:

  • %s for strings
  • %d for integers
  • %.2f for decimals with 2 decimal places

複数の値で文字列をフォーマット:

String name = "John";
int age = 25;
String text = String.format("Name: %s, Age: %d", name, age);
// Result: "Name: John, Age: 25"

精度で小数をフォーマット:

double price = 19.99;
String formatted = String.format("Price: $%.2f", price);
// Result: "Price: $19.99"

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static String formatData(String name, double price, int quantity, String format) {
        // ここにコードを書いてください
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        double price = Double.parseDouble(scanner.nextLine());
        int quantity = Integer.parseInt(scanner.nextLine());
        String format = scanner.nextLine();
        
        if (name.equals("null")) name = null;
        if (format.equals("null")) format = null;
        
        System.out.println(formatData(name, price, quantity, format));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン