文字列から特定の箇所だけ切り出したい。そんな時に
sliceメソッド
sliceメソッドを用いることで、配列や文字列から指定した要素を取り出すことができる。
# 配列を作成します
array = [0,1,2,3,4,5,6]
# 配列から引数で指定した要素をsliceします
ele1 = array.slice(1)
puts ele1
#=> 1
# 配列番号1から4つ分の要素をsliceします
ele2 = array.slice(1,4)
puts ele2
#=> 1 2 3 4
# 配列はもとのままです
puts array
#=> [0,1,2,3,4,5,6]
問題例
任意の文字列から最後の2文字を出力するメソッドを作る。
extra_end('Hello') → 'lo'
extra_end('abcde') → 'de'
ここでは呼び出すメソッドはextra_end
にします。
それではコードを書いていきます。
def extra_end(str)
char_num = str.length
right2 = str.slice(char_num - 2, 2)
puts right2
end
まずextra_endの仮引数をstr
とし、実引数を受け取る準備をしてあげます。
char_num
はstr
の文字数を取得するため、lengthメソッドを用いて定義します。
今回の問題は”最後の2文字を取得する”なので、sliceメソッドを用いて、char_num
の-2、つまり後ろから数えて二文字分遡った後に、2とする事で、そこから二文字分を取得します。
たとえば、extra_end('Hello')でメソッドを呼び出した場合、char_num = 5となり、right2 = str.slice(3,2)になります。
slice(3,2)は配列番号(インデックス)3つ目から数えて2つ分の要素を切り取ります。今回の場合、切り取られた結果loが残り、right2 = loとなります。
■ 参考リファレンス