Rubyで配列の操作

Rubyで配列の操作を行う方法をinteractive Ruby (irb)を使って確認しました。

●interactive Ruby (irb)の起動方法
$ rails console
 
1)文字列を分割して配列を作成
 
・splitメソッドで配列に分割
・デフォルトは、空白で分割。
 
irb(main):001:0> “foo bar baz”.split
=> [“foo”, “bar”, “baz”]
irb(main):002:0> “fooxbarxbazx”.split(‘x’)
=> [“foo”, “bar”, “baz”]
 
2)配列の各要素へのアクセス
 
①インデックスを使ってアクセス
 
・インデックス番号は0から開始。マイナスの使用も可。
irb(main):003:0> a = [42, 8, 17]
=> [42, 8, 17]
irb(main):004:0> a[0]
=> 42
irb(main):005:0> a[1]
=> 8
irb(main):006:0> a[2]
=> 17
irb(main):007:0> a[-1]
=> 17
 
②first、second、lastメソッド
 
irb(main):008:0> a
=> [42, 8, 17]
irb(main):009:0> a.first
=> 42
irb(main):010:0> a.second
=> 8
irb(main):011:0> a.last
=> 17
irb(main):012:0> a.last == a[-1]
=> true
 
3)配列長

irb(main):013:0> x = a.length
=> 3
 
4)配列の並び替え
 
・sort、reverse、shuffleメソッドで並び替え
・配列の値自身を並び替える場合は、末尾に”!”をつける。
 
irb(main):018:0> a
=> [42, 8, 17]
irb(main):019:0> a.sort
=> [8, 17, 42]
irb(main):020:0> a.reverse
=> [17, 8, 42]
irb(main):021:0> a.shuffle
=> [8, 17, 42]
irb(main):022:0> a
=> [42, 8, 17]
irb(main):024:0> a.sort!
=> [8, 17, 42]
irb(main):025:0> a
=> [8, 17, 42]
 
5)配列に要素追加
 
・pushメソッド、”<<"で追加。   irb(main):026:0> a.push(6)
=> [8, 17, 42, 6]
irb(main):027:0> a << 7 => [8, 17, 42, 6, 7]
irb(main):028:0> a << "foo" << "bar" => [8, 17, 42, 6, 7, “foo”, “bar”]
irb(main):029:0> a
=> [8, 17, 42, 6, 7, “foo”, “bar”]
 
6)配列の各要素を一つの文字列に結合
 
irb(main):029:0> a
=> [8, 17, 42, 6, 7, “foo”, “bar”]
irb(main):030:0> a.join
=> “8174267foobar”
irb(main):031:0> a.join(‘, ‘)
=> “8, 17, 42, 6, 7, foo, bar”
 
7)rangeを使って配列作成
 
①配列作成
irb(main):032:0> 0..9
=> 0..9
irb(main):034:0> (0..9).to_a
=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
②rangeを使って要素を取り出す
irb(main):036:0> a[0..2]
=> [“foo”, “bar”, “baz”]
 
8)文字列の配列
 
・%wを使用。
irb(main):035:0> a = %w[foo bar baz quux]
=> [“foo”, “bar”, “baz”, “quux”]
 
・文字に対してrangeを使用する事も可能
irb(main):037:0> (‘a’..’e’).to_a
=> [“a”, “b”, “c”, “d”, “e”]
 
9)inspectメソッドとpメソッド
 
・人間が読みやすい形に置き換えて表示する。
 
irb(main):037:0> a = [42, 8, 17]
irb(main):037:0> puts a
42
8
17
irb(main):037:0> p a
[42, 8, 17]
irb(main):037:0> puts a.inspect
[42, 8, 17]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です