5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

paiza勉強中に調べたRuby

Last updated at Posted at 2019-09-07

はじめに

paizaスキルチェックを使って勉強している時に調べたRubyの構文を忘れないうちにまとめておこうと思いました

配列

中身をStringからIntegerに変更する

array = array.map(&:to_i)

to_iをto_sに変えればStringクラスに変更する

中身をならべかえる

# arrayがIntegerクラスの場合
array = [3, 5, 23, 15, 1]
list = array.sort
p list #=> [1, 3, 5, 15, 23]

# arrayがStringクラスの場合
array = array.map(&:to_s)

list = array.sort
p list #=> ["1", "15", "23", "3", "5"]

配列の中身のクラスによって結果が変わるので配列の中身を意識する

順番を入れ替える

array = [3, 5, 23, 15, 1]
list = array.reverse
p list #=> [1, 15, 23, 5, 3]

配列、文字列に特定の文字が含まれているか調べる

array = [3, 5, 23, 15, 1]
p array.include?(1) #=> true
p array.include?(4) #=> false

str = "apple"
p str.include?("ppl") #=> true

n番目を消す

# 2番目の要素を消す
array = [3, 5, 23, 15, 1]
array.delete_at(1)
p array #=> [3, 23, 15, 1]

# array.delete(1)とすると1があったら消す。似ているので注意
array = [3, 5, 23, 15, 1]
array.delete(1)
p array #=> [3, 5, 23, 15]

最後の要素を消す

array = [3, 5, 23, 15, 1]
array.pop
# array.delete_at(-1) でも可
p array #=> [3, 5, 23, 15]

要素を追加する

# 最後に追加
array = [3, 5, 23, 15, 1]
array.push(8)
# array << 8 でも可
p array #=> [3, 5, 23, 15, 1, 8]

# 最初に追加
array = [3, 5, 23, 15, 1]
array.unshift(8)
p array #=> [8, 3, 5, 23, 15, 1]

中身を合体する

array = [3, 5, 23, 15, 1]
p array.join #=> "3523151"

# joinに引数を渡すと間に入れてくれる
p array.join(" ") #=> "3 5 23 15 1"
p array.join("a") #=> "3a5a23a15a1"

最大のものを調べる

array = [3, 5, 23, 15, 1]
p array.max #=> 23

最も多いものを調べる

array = [1, 2, 3, 3, 4]
p array.max_by { |a| array.count(a) } #=> 3

# 同じ数のものが複数あった場合最初にある要素が出力される
array = [1, 2, 3, 3, 1, 4]
p array.max_by { |a| array.count(a) } #=> 1

文字数が多いものを調べる

array = ["apple", "orange", "lemon"]
p array.max_by { |a| a.size } #=> "orange"

ネストした配列の作り方

p array = Array.new(3).map { Array.new(2, 0) }
#=> [[0, 0], [0, 0], [0, 0]]

文字

切り捨て、切り上げ、四捨五入

f = 3.5
p f.floor #=> 3 切り捨て
p f.ceil #=> 4 切り上げ
p f.round #=> 4 四捨五入

絶対値

i = -1
p i.abs #=> 1

0010と表示したい

p format('%04d', 10) #=> "0010"
p ('%04d' % 10) #=> "0010"

文字と文字コード

str = "a"
p code = str.ord #=> 97
p code.chr #=> "a"

日付、時間

p Time.now #=> 今の時間
p Time.local(2000) #=> 2000-01-01 00:00:00 +0000
p t = Time.local(2000, 1, 2, 3, 45) #=> 2000-01-02 03:45:00 +0000
# フォーマットで表示を指定
p t.strftime("%H:%M") #=> "03:45"

最後に

自分用にまとめただけですが、これが誰かの役に立てれば幸いです。

参考

5
5
0

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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?