2018年以降の記事はGitHub Pagesに移行しました

Rubyで固定長の値を扱う方法sprintfとパーセント演算子

あらすじ

  • Rubyで固定長の値を扱うときはどうしたらいいんだろう
    • 必ず5ケタにしたい! 255の場合は00255になってほしい

方法

調べてみるとsprintfメソッドというものがあった。

irb(main):020:0> sprintf("Number:%10d", 255)
=> "Number:       255"
irb(main):021:0> sprintf("Number:%010d", 255)
=> "Number:0000000255"

なるほど、これを使えば良いのかと思っていたら、次にStringクラスに%(パーセント演算子)というものが存在している事を発見。どんな事をしてくれるのかというと…

irb(main):022:0> "Number:%010d" % 255
=> "Number:0000000255"

とりあえず、使ってないと見慣れない物体に見えるなぁ。

という事で、方法を二種類見つけたんだけど、これどっち使うのがいいんだろう。個人的にはsprintfの方が何やっているかはわかりやすいけど、これは慣れの問題っぽいしな。