質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

10360閲覧

Ruby 末尾の1文字ではなく、指定した文字列を取り除きたい。

mameko312

総合スコア151

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

2クリップ

投稿2014/07/27 10:17

chopメソッドだと、末尾の1文字は取れるのは知っており、chopメソッド以外で、
自分が指定した文字列をとりのぞきたいのです。
どなたか知っている方いましたら教えていただけないでしょうか?

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

String#delete だと、取り除くのは 文字列 ではなく 文字の集合 になります。
"tomato" から冒頭の "tom" を取り除きたいと思っても
tomato = "tomato" #=> "tomato" tomato.delete("tom") #=> "a"
となってしまいます。

文字列 "tom" を取り除くならば、 String#slice! が適切だと思います。ただし破壊的メソッドなので注意する必要があります。
tomato = "tomato" #=> "tomato" tomato.slice!("tom") #=> "tom" tomato #=> "ato"
"tom" を空文字に置き換える、と考えるならば、 String#gsub を使うのも良いです(私が最初に思いついたのはこちらです)
tomato = "tomato" #=> "tomato" tomato.gsub("tom", "") #=> "ato"

投稿2014/08/04 13:06

riocampos

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mameko312

2014/08/19 02:12

回答ありがとうございます。わかりやすい説明で、理解出来ました。
guest

0

ベストアンサーはでているようですが、ちょっと違う方法も挙げておきます。

chop と似たメソッドに chomp というメソッドがあります。
これはもともと末尾が改行だったら、取り除く処理です。これは引数で取り除く改行文字を指定することができます。
これを使って、末尾から自分が指定した文字列を取り除くことができます。

lang

1str = 'tomato' 2p str.chomp('to') # "toma"

投稿2014/11/13 16:34

yohshiy

総合スコア863

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

deleteメソッドを使えば実現できますよ。

例えば、以下のプログラムの中から、

tomato = "tomato" puts tomato.delete("ma")

このサンプルは、tomatoからtotoに、指定した
maは取り除くことができています。

投稿2014/07/28 02:30

tarou

総合スコア233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問