お知らせ
2023.12.5(Tue)
目次
こんにちは。関口です。
今回はJavaで文字列を整形できるformatメソッドについて、基本的な書き方からよく使う書き方をご紹介します。
指定されたロケール(省略可能)、書式文字列、および引数を使って、整形された文字列を返します。文字列の整形を行う時はもちろん、数値型や日付型を文字列型に整形する場合に便利です。
書式文字列に書式を指定する際には「%」+「文字数、精度」+「データ型」で設定します。それでは、基本的な使い方と、よく使う書き方を紹介していきます。
引数に設定した文字列を、書式文字列をもとに整形します。
String str = "AMG Solution";
System.out.println(String.format("値は「%s」です。", str));
// 実行結果
値は「AMG Solution」です。
String str = "AMG Solution";
System.out.println(String.format("値は「%S」です。", str));
// 実行結果
値は「AMG SOLUTION」です。
引数に設定した整数をゼロ埋めした文字列に整形します。
Integer suji = 1123;
System.out.println(String.format("値は「%05d」です。", suji));
// 実行結果
値は「01123」です。
「%」の後ろに「0」を設定しない場合は、空白で整形されます。
Integer suji = 1123;
System.out.println(String.format("値は「%6d」です。", suji));
// 実行結果
値は「 1123」です。
Integer suji = 1123;
System.out.println(String.format("値は「%-6d」です。", suji));
// 実行結果
値は「1123 」です。
引数に設定した整数を3桁ごとのカンマ区切りをした文字列に整形します。
Integer suji = 1123456;
System.out.println(String.format("値は「%,d」です。", suji));
// 実行結果
値は「1,123,456」です。
小数点付きの数字を整形します。サンプルはBigDecimal型ですが、Double型でも同様に使用できます。
BigDecimal suji = new BigDecimal("1.1234567");
System.out.println(String.format("値は「%f」です。", suji));
// 実行結果
値は「1.123457」です。
BigDecimal suji = new BigDecimal("1.1234567");
System.out.println(String.format("値は「%.4f」です。", suji));
// 実行結果
値は「1.1235」です。
引数に設定したDate型を文字列に整形します。サンプル実行時の日付は「2024年08月01日 14時05分24秒」です。
Date day = new Date();
System.out.println(String.format("%tY年%tm月%td日", day, day, day));
System.out.println(String.format("%tH時%tM分%tS秒", day, day, day));
// 実行結果
2024年08月01日
14時05分24秒
いかがでしたでしょうか。
よく使うメソッドですが、「あれ、どう書くんだっけ」と調べることが多かったので今回ご紹介させていただきました。使ったことがある方も、はじめての方にもお役に立てたら幸いです。
《関連記事》