🙌

【Java】String.format() の仕組みと使い方

2025/02/05に公開

String.format() の仕組みと使い方

String.format() は、指定したフォーマットに従って文字列を生成するメソッドです。
printf のようにフォーマット指定子(% を含むプレースホルダー)を使って、変数を埋め込むことができます。


基本的な構文

String result = String.format("フォーマット文字列",1,2, ...);

この フォーマット文字列 には プレースホルダー(%で始まる指定子) を記述し、後続の 値1, 値2, ... に置き換えられます。


主なフォーマット指定子

指定子 説明
%d 整数(int, long など)
%f 浮動小数点(float, double)
%s 文字列(String)
%c 文字(char)
%b 真偽値(boolean)
%x 整数の16進数表記
%e 指数表記(1.23e+10)

使用例

① 整数をフォーマット

int age = 25;
String result = String.format("年齢は %d 歳です", age);
System.out.println(result);

出力

年齢は 25 歳です

② 小数点以下の桁数を指定

double height = 1.7563;
String result = String.format("身長は %.2f m です", height);
System.out.println(result);

出力

身長は 1.76 m です

📌 %.2f小数点以下2桁に丸める


③ 文字列をフォーマット

String firstName = "太郎";
String lastName = "山田";
String result = String.format("名前は %s %s です", firstName, lastName);
System.out.println(result);

出力

名前は 太郎 山田 です

📌 %s文字列を埋め込む
📌 渡す引数の順番を変えると、出力の順番も変わる!

String firstName = "太郎";
String lastName = "山田";

String resultA = String.format("名前は %s %s です", firstName, lastName);
System.out.println(resultA);
String resultB = String.format("名前は %s %s です", lastName, firstName);
System.out.println(resultB);

名前は 太郎 山田 です ←resultA
名前は 山田 太郎 です ←resultB

④ 複数の値をフォーマット

String name = "田中";
int age = 30;
double weight = 65.5;

String result = String.format("名前: %s, 年齢: %d 歳, 体重: %.1f kg", name, age, weight);
System.out.println(result);

出力

名前: 田中, 年齢: 30 歳, 体重: 65.5 kg

📌 %.1f → 小数点以下 1桁 に丸める


フォーマットの応用

⑤ 左詰め・右詰めの指定

指定子 説明
%10s 10文字幅で右詰め
%-10s 10文字幅で左詰め
%5d 5桁で右詰め(数値)
System.out.println(String.format("|%10s|", "Hello"));  // 右詰め
System.out.println(String.format("|%-10s|", "Hello")); // 左詰め
System.out.println(String.format("|%5d|", 42));        // 数値の右詰め

出力

|     Hello|
|Hello     |
|   42|

まとめ

🔹 String.format() を使うと、+ を使った文字列連結よりもスッキリと可読性の高いコード が書ける。
🔹 %.xf小数点以下x桁に丸められる
🔹 %s, %d, %f などのフォーマット指定子を覚えると便利!

System.out.printf() も同じ仕組みで使えるので、コンソール出力なら printf()、文字列生成なら String.format() を使うのがオススメ! 🚀

Discussion