#背景
社員番号等を扱う際にどんな桁の数字でも最終的な桁数を合わせる方法を調べていた時に少し穴があったのでメモしておきます。
※どちらも5桁にする場合
12→00012
2389→02389
#使用したクラス
String.format("%xyz" , n);
% = 正規表現
x = 埋めたい数字
y = 埋めたい桁数(nも含む)
z = 10進数やほかの進数の頭文字(今回はd)
文字列.replace(何を,何に変換);
#やってみた
public class strPractice02 {
public static void main(String[] args) {
//9の前に4桁分のゼロを付け足す
String str = String.format("%05d", 9);
System.out.println(str);
//0以外の文字に置き換える
String str2 = String.format("%15d", 9);
System.out.println(str2);
//なぜか空白になる場合の代替策
String str3 = String.format("%5d", 9).replace(" ", "1");
System.out.println(str3);
}
}
実行結果
00009
9
11119
#まとめ
調べていると0以外の数字でもx部分に代入すれば数字埋めができると書いてあったですが、1で埋めようとしたstr2では14桁の空白ができてしまっています。そのため空白を置き換えてみました。
※コメントでご指摘いただきました。この空白はクラスの仕様でした。申し訳ありません。