【Ruby】数字も文字列もオブジェクトばかり

2018年2月27日

よくわからないけど、数字の1とかローマ字のaも文字列でaaaもオブジェクトとして扱われているのがRuby。

数字に関するメソッド

例えば
123.to_s とやれば123という数字を文字列に変換できる。aaaに代入してもできる。

aaa = 123
bbb = aaa + 1

puts aaa + "あああ"

↑これはエラーが出る。

puts aaa.to_s + "の次は" + bbb.to_s

このように.to_sというメソッドを付けてあげれば、文字列として扱えるようになる。

そういえばこういうのJavaでもやったような記憶があるなぁ。toNumberみたいなことをしたような‥

なので123みたいに一見すると数字だけど、実はオブジェクトということが言える。

数字に関しては他にもメソッドがある。
nextというメソッドは次の数字を返すメソッド。irbコマンドで確認してみよう。

> aaa = 123

> puts aaa.next
124

> puts 234.next
235

なんとRubyには?を含めたメソッドもあるようで。even?とodd?を使ってみると、これは偶数か奇数を判定し、真であればTrue,そうでなければFalseを返す。

> puts 123.even?
false

> puts 123.odd?
true

> puts 234.even?
true

> puts 234.odd?
false

文字列関係のメソッド

lengthは文字数を取得するメソッド。
gsubはパターンで文字列の置換をするメソッド。
empty?は空かどうかを返すメソッド。
to_iは、文字列を数字に変換する。
stripは空白の除去をする。
splitは文字列の分割を行う。

irbコマンドでの実行結果を残しておく。

aaa = “coffeeapp good!”

> puts aaa.length
15

> puts aaa.gsub(/app/, “_appli”)
coffee_appli good!

> puts aaa.empty?
false

> bbb = ” 明日は晴れです。\n明後日は曇りです。\n”

> puts bbb
 明日は晴れです。
明後日は曇りです。

> puts bbb.strip
明日は晴れです。
明後日は曇りです。

ccc = “2018/2/28”

> ccc.split(‘/’)
=> [“2018”, “2”, “28”]

> puts ‘123’.to_i + 1
124