slice!メソッド
配列や文字列から指定した要素を削除し、削除したあとの要素を返します。
「 ! 」の付くメソッドは破壊的メソッドと言います。
破壊的メソッド
元の配列や文字列そのものを変化させてしまうメソッドのことを破壊的メソッドと言います。
ちなみに、調べてみると「 ! 」が付かない破壊的メソッドもあります。
勉強する必要がありますね!
slice!メソッドの例
string = "おはようございます!"
string.slice!(2)
puts string
#=> "おはうございます!"
# 2番目の要素の「 よ 」が取り除かれて、返ってきた
slice!メソッドを使って任意の文字列を部分的に削除するプログラムの作成
条件は以下の通りです。
- 対象となる文字列からn番目の文字を削除すること
- 削除された文字以外の文字列を出力すること
def string(str, n)
str.slice!(n - 1)
puts str
end
# 以下は呼び出し例
string('Helloworld', 1)
string('Helloworld', 2)
string('Helloworld', 4)
解説
stringメソッドの引数strは、
対象となる文字列(今回だと、Helloworld)、nは○番目の文字を消すのかを指示する数字が入ります。
2行目の(n - 1)についてですが、先頭の文字列は0番目としてカウントされてしまうため、-1を付け加えています。