1
3

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 3 years have passed since last update.

sliceメソッドの使い方のアウトプット

Posted at

表題の通りsliceメソッドについてアウトプットします。

sliceメソッドとは

配列や文字列から指定した要素を取り出すことができる。

使い方いろいろ

その1 (1つ指定して取り出す)

array = [0,1,2,3,4,5,6]

result = array.slice(1)
puts result
#=> 1

# 配列自体は変わらない
puts array 
#=> [0,1,2,3,4,5,6]

その2-1 (複数の要素を取り出す)

複数の要素を取り出すこともできる。

下記は「ここから○つ分を取り出す」方法。

array = [0,1,2,3,4,5,6]

# 配列番号1から4つ分の要素をsliceする
result = array.slice(1,4)
puts result
#=> 1 2 3 4

この方法を使って下記のようなこともできる。

# 任意の文字列の最後の2文字を3回繰り返して出力するメソッドを作る

def extra_end(str)
  num = str.length
  right2 = str.slice(num - 2, 2)
  puts right2 * 3
end

extra_end(str)

str.lengthで文字列の文字数を取得。
文字列も配列と同じで先頭は0から数えていくので、
文字列の最後の文字を取得するならstr.slice(num - 1)となる。
今回は文字列の最後の2文字を取得したいので、str.slice(num - 2, 2)にする。

その2-2

複数の要素を取り出す方法には他に、
「配列番号○から配列番号Xまでを指定して取り出す」方法もある。

array = [0,1,2,3,4,5,6]

# 配列番号1から4までの要素をsliceする
result = array.slice(1..4)
puts result
#=> 1 2 3 4

こんなこともできる。

# 要素を定義
array = "string"

# 配列番号の-3から-1の範囲の文字列を切り取る
result = array.slice(-3..-1)
puts result
#=> "ing"

一番右側が-1で、右から左に-1,-2,-3...と配列番号を数える。

その3 slice!

sliceの後ろに!を付けると元の配列や文字列を変化させることができる。
(破壊的メソッド)

string = "abcde"

result = string.slice!(2)
puts result
#=> "c"

# "c"が取り除かれている
puts string
#=> "abde"
1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?