Paizaでよく使うRubyメソッド集〜その1〜

スポンサーリンク
Paizaで使ったRubyのメソッド一覧集プログラミング
スポンサーリンク

Paizaで使ったRubyメソッド集〜その1〜

備忘録のためにPaizaで使ったメソッドなどを随時発信していきます。

split メソッド

split メソッド概要

指定した区切り文字で対象となる文字列を分割して配列にするメソッド

split メソッドの例

p "100,200,300".split(',')
#["100", "200", "300"]

以上のように引数で指定した文字によって文字列が分割されているのがわかります。

そしてそれぞれが配列の要素となっているのがわかります。

join メソッド

joinメソッド概要

配列の要素を結合して一つの文字列としたい場合に使われる。

引数に区切り文字を指定できる。

join メソッドの例

array = ["俺の名は", "山田", "太郎"]
p array.join(",")
# "俺の名は,山田,太郎"

配列の中に入っている各要素が文字列となってくっついているのがわかります。

また、引数によってそれぞれが ” , “で区切られているのがわかります。

puts, p, print メソッド

puts, p, printメソッド概要

putspprint
「改行」するするしない
「引数」順番に出力順番に出力順番に出力
「オブジェクト」文字列に変換\nや\tなどのエスケープ文字も出力する文字列に変換
「戻り値」nil引数で配列で返すnil

特徴としてまとめると、putsは改行をする、printは改行しない、pはテストで良く使うということを覚えておくと良いかも。

今までputsしか使って来なかったけど、printやpも良く使うようになりました。

map メソッド

mapメソッド概要

配列の要素の数だけブロック内の処理を繰り返し、結果として作成された配列を返す。
mapは元の値に対して影響を与えないがmap!は元の値を書き換える。

また、各要素にメソッドを適用するときは省略することができる

mapメソッドの例

# 例1)

a1 = [100, 200, 300]
a2 = a1.map { |x|
  x * 2 
}
p a2 
# [200, 400, 600]

# 例2) 各要素にメソッドを適用するときは省略することができる
# オブジェクト.map(&:メソッド名)

a = ["APPLE", "ORANGE", "GRAPE"]
p a.map(&:downcase) # ["apple", "orange", "grape"]

a1の配列の各要素に対して2を掛けているのがわかります。

結果、a2の配列の中身は[ 200, 400, 600]となります。

今回はmapを使いましたが、map!を使うとa1の中身が[200, 400, 600]に書き換わります。

この場合、新しい配列a2を作る必要はありませんね。

while メソッド

while メソッド概要

繰り返し処理の一つ。条件式がtrueの間それを実行し続ける。

while メソッドの例

# 等差数列
num = gets.split(" ")
num.map!(&:to_i)
x = num[0]
i = 1
array = []
while i <= 10
  array << x
  x = x + num[1]
  i += 1
end
puts array.join(" ")

「変数 i が10になるまでwhile以下の処理を実行し続けます」ということになります。

max メソッド

max メソッド概要

maxを使うと配列の中の最大値を取り出すことができる

また、引数で数を指定すると取り出す数を指定できる。

max メソッドの例

array = [10, 3, 2, 6, 8]
puts array.max
# 10

array = [10, 3, 2, 6, 8]
puts array.max(2)
# 10
# 8

配列の中の最大値が取れているのがわかりますね。

引数を指定することで取り出す数も指定できます。

sum メソッド

sum メソッド概要

配列の中の要素を足した合計値を出力する

sum メソッドの例

array = [1, 3, 5, 6, 3, 2, 5, 23, 2]
puts array.sum
# 50

select メソッド

select メソッド概要

配列の中から取り出す要素を選ぶ。

select メソッドの例

array = [4, 0, 5, -1, 3, 10, 6, -8]
puts array.select{|n|n >= 5}.sum
# 21

配列の中から「5以上の数値」を取り出しているのがわかるでしょうか。

今回取り出した数値は「5, 10, 6」になります。それをsumメソッドを使って合計値を出力しています。

コメント