#環境
Mac
Ruby 2.6.5
#達成したいこと
標準入力した数値が、指定した桁数に満たなかった場合、左詰めで0を加える。
例)8桁の場合
3→00000003
12→00000012
1234→00001234
#解決法
printfメソッドを使用する。
最初の引数でフォーマットを指定し、それ以降の引数で与えられた文字列または数値をフォーマットに従って整形し、文字列を生成して出力します。
基本的なprintfメソッドの書式は以下の通り。
※実際描くときは[ ]は要りません。
printf("%[フラグ][幅][.精度][指示子]", [文字列または数値])
フラグにはさまざまありますが、「0」を用いると、幅を指定する際に余った桁を「0」で埋めてくれます。幅は表示する数値の桁数を指定します。(精度は今回は指定しません)
指示子(与えられたデータの整形の仕方を指示)もいろいろありますが、整数を10進法で表示する場合は%d
とします。
例えば、上記の例では以下のようになります。
num = gets.to_i
printf("%08d",num) #フラグに「0」、幅に「8」、指示子に「%d」を入力
# num = 3の場合
#=> "00000003"
# num = 12の場合
#=> "00000012"