どのくらい経ったか定かではないけれども、一月くらいだろうか?
Ruby であるプログラムを書き始めて。
Ruby は iRuby で書いていて、それ以前には全く興味がなかったので Ruby については知らない、ゼロ知識から一ヶ月くらいたったのではないだろうか、というところにいる。
自分でオブジェクトを開放できない以外は不安はない。させてほしい、自分で。
あるデータを読み出して、https 接続先の API にクエリに投げるというとこを書いていて、反応を見ている。
反応を見ていると、01
という文字列よりも、1
の方が、都合が良さそうである。つまり左側にゼロがない方がいい。
そこで、ゼロパッディング(ゼロ埋め)されたものから、ゼロを取りたい。如何に?
まず、ゼロパッディング。
num = "%02d" % 1
1 は 01 となる。文字列。
これを戻そうとするわけで、
p num.to_i
01 から 1 になった。おしまい...
と思っていたら、こんままでは書いていたプログラムの中では通らなかった。
書いていたのは、レギュラーエクスプレッションで取り出した数字列 01
だったのだ。
num = /\d+/.match('def01abc')
puts num
の01
なので、このままではマッチしたオブジェクトということになる。そうなっているので、to_i ってメソッドなんて無いというエラーになる。
num.to_i
結果はエラー。
num = /\d+/.match('def01abc')
num = num.to_s
p num.to_i
これでオッケー。
しかし、さらにこの書いていたプログラムでは、さらにその01
を文字として他の変数に付け足したいところだったので、こうなる。
num = /\d+/.match('def01abc')
text = 'book_title'
text += ' ' + num.to_s.to_i.to_s
p text
"book_title 1"
こういうのでやってみてね。