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

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

あらすじ

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

参考サイト

http://www.ruby-lang.org/ja/old-man/html/sprintf_A5D5A5A9A1BCA5DEA5C3A5C8.html:title

http://www.oki-osk.jp/esc/ruby/tut-04.html:title の4.2

方法

調べてみると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の方が何やっているかはわかりやすいけど、これは慣れの問題っぽいしな。

関連記事(この記事の初版より古い記事はリンクがグレーで表示されます)

  1. 2012/12/25 [Ruby] メモ化を知った
  2. 2012/11/12 [Ruby] [Jekyll] はてなダイアリーのエントリをJekyllへ移行する
  3. 2012/10/10 [Jekyll] [Liquid] [Ruby] Jekyll(Liquid)で記事の目次を出力するプラグインを作ってみた
  4. 2012/10/01 [Ruby] [Bundle] [Windows] bundle execを省略したいのでバッチを作った(Windows版)
  5. 2012/09/21 [Python] [Ruby] [Jekyll] Pygmentsを使ってJekyll内記事のコードハイライトを実現する
  6. 2012/09/20 [Jekyll] [StartUp] [Ruby] JekyllをGitHub Pagesに上げるための準備
  7. 2012/09/14 [Ruby] [StartUp] [Jekyll] JekyllとJekyll Bootstrapでかんたん静的サイト生成…するための準備
  8. 2012/09/13 [Ruby] [Fluentd] Fluentdの自作プラグインがロードできないのでソースの中身を追ってみる…
  9. 2012/08/17 [Fluentd] [Ruby] Fluentdのプラグインを作成してみる(練習用)
  10. 2012/07/17 [Ruby] [Windows] [Redmine] Windows版Redmineをサービスに登録してブート時に起動させる(宿題あり)
  11. 2012/07/12 [Fluentd] [Ruby] Fluentdというログ収集ツールを使ってApacheのログを取得するまで
  12. 2012/06/03 [TDD] [RSpec] [Ruby] [イベント] TDD Boot Camp 大阪 1.0( #tddbc ) に参加しました
  13. 2012/05/28 [Ruby] [イベント] [Jenkins] [Redmine] Jenkins,Redmine使いこなし勉強会に参加しました と、ちょっとプラグイン作ってみた #jen_red
  14. 2012/05/21 [SlideShare] [Heroku] [Ruby] [API] SlideShareのAPIを叩いてスライドをDLするRubyスクリプトをHerokuにデプロイした
  15. 2012/04/20 [Ruby] [Windows] ZenTestで実行したRSpecの結果をGrowlで通知してくれるようにした