🙌
【Java】String.format() の仕組みと使い方
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