使わないようでたまに使いたい局面があるんだ
で、例えば二桁のゼロ詰めとかを愚直に書くとこんな感じだろうか(元々の値が文字列か数値かで変わるだろうけど)。
num = "0" if num.to_i < 10 num = "0" + num end
ただ、なんか頭悪いなーって思う
Ruby でこんなことをしなくちゃいけないのか? と思うのと同時に、 C言語だったら sprintf とかでできるんじゃないかなーと思い、探してみた。
そしたら、そのまんまズバリで sprintf ってのがある。
これを使うと、こう書ける。
num = "0" num = sprintf("%02d", num)
num が数字でも文字列でもよしなにやってくれる模様。
欲を言えば、破壊メソッド的なものがあると良いんだけど、それは num に値を代入する時点で sprintf をかませば良いか。
参考:http://www.ruby-lang.org/ja/man/?cmd=view;name=sprintf%A5%D5%A5%A9%A1%BC%A5%DE%A5%C3%A5%C8