Q&A
chopメソッドだと、末尾の1文字は取れるのは知っており、chopメソッド以外で、
自分が指定した文字列をとりのぞきたいのです。
どなたか知っている方いましたら教えていただけないでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答3件
5
ベストアンサー
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
総合スコア241
3
ベストアンサーはでているようですが、ちょっと違う方法も挙げておきます。
chop
と似たメソッドに chomp
というメソッドがあります。
これはもともと末尾が改行だったら、取り除く処理です。これは引数で取り除く改行文字を指定することができます。
これを使って、末尾から自分が指定した文字列を取り除くことができます。
lang
1str = 'tomato' 2p str.chomp('to') # "toma"
投稿2014/11/13 16:34
総合スコア863
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
2
deleteメソッドを使えば実現できますよ。
例えば、以下のプログラムの中から、
tomato = "tomato" puts tomato.delete("ma")
このサンプルは、tomatoからtotoに、指定した
maは取り除くことができています。
投稿2014/07/28 02:30
総合スコア233
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
関連した質問
意見交換
受付中
プログラミングの設計が分からない
回答24
クリップ10
更新
2023/03/17
Q&A
解決済
Javaアプリケーションのプロファイルをとりたい
回答2
クリップ0
更新
2023/03/20
Q&A
解決済
Rubyのsystemメソッドでsyntax error: invalid arithmetic operator (error token is ".1")
回答1
クリップ0
更新
2023/03/24
Q&A
解決済
VBAで指定秒数毎にサブルーチンを実行したい
回答1
クリップ0
更新
2023/03/27
Q&A
受付中
プログラミング初心者です。第二引数に関数
回答3
クリップ1
更新
2023/03/20
Q&A
解決済
1986-1-12 00:00:00.0 と出力されてしまうのを, SimpleDateFormat("yyyy-MM-dd");のパターンに直したい
回答2
クリップ0
更新
2023/03/24
Q&A
受付中
別クラスのget_context_dataメソッド内の変数を参照したい
回答1
クリップ0
更新
2023/03/27
同じタグがついた質問を見る
Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2014/08/19 02:12