LoginSignup
0
0

More than 1 year has passed since last update.

ゼロ埋めの逆 Ruby

Last updated at Posted at 2021-06-11

どのくらい経ったか定かではないけれども、一月くらいだろうか?
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"

こういうのでやってみてね。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0