数値のゼロ埋め

int 5 を String の "005" とかにしたい。


JDK2だと、DecimalFormatを使うみたい。下記参照。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000087.html
http://www.letsstudy.net/java/4502/Notes.html


JDK5Tigerだと、Stringクラスのformatを使って、

int i = 3;
int j = 4;
System.out.println(String.format("%1$03d,%2$010d", i, j));
// 003,0000000004

楽チン。


JavaDocを見ると、


String.format → Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
書式 → Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle


記述が複雑(というか情報が大量)なので、最低限ゼロ埋めに必要なところは・・・

  • %1$とか%2$とか
    • フォーマットに与えられるパラメータ。上の例では%1$が「i」%2$が「j」
  • 03dとか010dとか
    • 0埋め3桁で10進数(03d)。0埋め10桁で10進数(010d)。


/// 追記 ///
03dとかっていうのは最低3桁で10進数ということで、
↓みたいに桁を超えても全部表示されました。

int i = 3000000;
System.out.println(String.format("%1$03d", i));
// 3000000

桁のリミットっていうのもあるのかな・・・?