1
0

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.

[Ruby] sliceメソッドを使って文字列を切り出す

Posted at

文字列から特定の箇所だけ切り出したい。そんな時に

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_numstrの文字数を取得するため、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となります。

■ 参考リファレンス

1
0
2

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?