Ruby deleteメソッドの使い方

プログラムの問題で特定の文字を削除する時にdeleteメソッドを使用したので、それのアプトプットをしときます。

加えて、自分は複数の特定の文字を削除する方法がわからず。

というか、イメージしてた書き方と違ったのでもし同じように躓いた人がいたら参考にしてください。

特定の文字の消し方

deleteメソッドの()に削除したい文字を記入するだけ。 ↓

irb(main):010:0> chara = "123+abc///"
=> "123+abc///"

irb(main):011:0> test = chara.delete("a")
=> "123+bc///"

範囲を指定して消すことも可能です。 (aからeまでの範囲を消してます。)

irb(main):016:0> chara = "abcdefghijklmnopqrstuvwxyz"
=> "abcdefghijklmnopqrstuvwxyz"
irb(main):017:0> test = chara.delete("a-e")
=> "fghijklmnopqrstuvwxyz"

複数文字の消し方

記入方法1:""に削除したい文字を全部書く

irb(main):024:0> chara = "hello world"
=> "hello world"
irb(main):025:0> test = chara.delete("hewo")
=> "ll rld"

記入方法2:""で区切ってるパターン

この時に感覚で区切りに( "", "" )←コンマを入れるのが普通かと思っていました、、、この場合だと何も削除されないです。

irb(main):024:0> chara = "hello world"
=> "hello world"
irb(main):026:0> test = chara.delete("he""wo")
=> "ll rld"

記入方法3:1つ目と同じで、違うのは文字の順番

これの教訓は、文字列の前から文字を消していくと思い込んでいたけど違っていたことです。とにかく削除したい文字を適当に入れても構わないようです。多分これが本来の使用方法だと思います。

irb(main):024:0> chara = "hello world"
=> "hello world"
irb(main):029:0> test = chara.delete("wolhe")
=> " rd"

まとめ

基本的には上記の記入方法3で使用するけど、複数単語を消す場合はコードを見る人のことも考えて記入方法2の方が見やすいなと思いました。 その際は( "", "" )コンマで区切らない事を忘れないようにします。