0
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メソッド

Last updated at Posted at 2020-12-03

#戯言
今日は朝から掃除洗濯、朝ごはんを作り、布団を干し・・・・

とりあえずプログラミングの学習ができるまとまった時間の確保ができるので今日1日外に出たり出なかったり。

コロナ対策・デフレ脱却、がんばれ政府

ということで・・・

#本題 sliceメソッドについて

今日も以前解いた問題に2回目の挑戦。
sliceメソッドを使った問題でした。

※出力例:
extra_end('Hello') → 'lololo'
extra_end('shinzo') → 'zozozo'
extra_end('Hi') → 'HiHiHi'

このような結果にしなさいとのお達し。
完全に忘れてました。次のように回答。

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

extra_end('Hello')
extra_end('ab')
extra_end('Hi')

ちょっと解説すると、
任意の文字列を文字数を出す
 ↓
1つ目の引数で「出した文字数−2」で文字列の後ろから2番目の要素を基準点とする  
 ↓
2つ目の引数で基準点から2つ要素を取り出す
 ↓
で、出した要素を3回繰り返せということなので、単純に×3

回答し解説を見ると、sliceの処理、超単純に「−2」だけで後ろから2番目の要素を基準にできちゃうというオチ。
そういうわけで

def extra_end(str)
  puts str.slice(- 2, 2) * 3
end

これだけで同じ結果が出ます・・・。

参考に
Array#slice 公式リファレンス

そういうわけで、いろんな方法で同じ結果を出すことができるところも面白いと思いますが、できるだけシンプルを意識し頑張ります。

0
0
4

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
0
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?