Javaで「String.format」メソッドを使用して、数値をゼロパディング(ゼロ埋め)したり、文字列へ半角スペース埋めする方法をご紹介します。
formatメソッドの書式
- IllegalFormatException – 書式文字列が、不正な構文、所定の引数と互換性がない書式指示子、書式文字列に与えられた不適切な引数、あるいはほかの不正な条件を含む場合。
- NullPointerException – format が null の場合
引数 | 型 | 説明 |
---|---|---|
第1引数 | String format | 書式文字列 |
第2引数 | Object... args | 書式文字列の書式指示子により参照される引数。書式指示子よりも引数が多い場合、余分な引数は無視される。引数の数は変動し、ゼロの場合もある。引数の最大数は、Java 仮想マシン仕様で定義されている Java 配列の最大次元により制限される。引数が null の場合、動作は変換に応じて異なる |
発生する例外
用途別の記述例
用途 | 記述例 | 備考 |
---|---|---|
文字列の先頭を空白埋めする | String.format("%6s", "abc") | 指定文字列を最大6桁まで文字列の左側に空文字を追加します。 |
文字列の後ろへ空白埋めする | String.format("%-6s", "abc") | 指定文字列を最大6桁まで文字列の右側に空文字を追加します。 |
数字の先頭を0埋めする | String.format("%06d", 123) | 指定数字を最大6桁まで文字列の左側にゼロパディングします。 |
数字を3桁ごとにカンマ区切りする | String.format("%,d", 123456789) | 指定数字を3桁毎にカンマ区切りします。 |
サンプルJavaソース
String型項目に対してゼロパディングしたい場合、一旦formatで指定桁数に整えてからreplaceメソッドを使用する事でゼロパディング可能となります。
空文字→半角スペースね。意味違うから。