📝
Ruby 文字列から文字を取り除く/取り出す deleteメソッド・sliceメソッド
今日は文字列を削除するメソッドについてまとめます。
指定した文字を取り除く deleteメソッド
deleteメソッド
は引数に指定した文字を取り除いた結果を返すメソッドです。
このメソッドを使用した時、もとの文字列は保持されますが、破壊的メソッドslice!
はもとの文字列自身を変更します。
irb(main):001:0> str = "abcabcabc"
=> "abcabcabc"
irb(main):002:0> str.delete("a")
=> "bcbcbc"
irb(main):003:0> str.delete("ac")
=> "bbb"
irb(main):004:0> str
=> "abcabcabc"
irb(main):005:0> str = "abcabcabc"
=> "abcabcabc"
irb(main):006:0> str.delete!("a")
=> "bcbcbc"
irb(main):007:0> str
=> "bcbcbc"
指定した位置/範囲を取り出す sliceメソッド
sliceメソッド
は位置を指定して文字列を取り出すメソッドです。
こちらも破壊的メソッドslice!
はもとの文字列自身を変更します。
irb(main):010:0> str = "0123456789"
=> "0123456789"
# 文字列に対して0からインデックスが振られます。引数には位置を指定します。
irb(main):002:0> str.slice(0)
=> "0"
# 引数をマイナスにすると末尾からの位置が指定できます。
irb(main):003:0> str.slice(-1)
=> "9"
# 範囲指定の使用例:インデックス3から5文字分切り取ります。
irb(main):011:0> str.slice(3, 5)
=> "34567"
irb(main):012:0> str
=> "0123456789"
irb(main):013:0> str = "0123456789"
=> "0123456789"
irb(main):014:0> str.slice!(3, 5)
=> "34567"
irb(main):015:0> str
=> "01289"
参考
配列にもdeleteメソッド、sliceメソッドあります。
Discussion