2017-06-12 9 views
-2

、私はこの文字列を持っていると言う:"abc''xyz''"文字列に重複しているアポストロフィをどのように削除しますか? Rubyでは

(これらはabcxyz後2つの単一引用符です)

さて、私はこの文字列にそれを作るための方法を見つけようとしています:"abc'xyz'"

2つのアポストロフィが連続している場所で、この文字列から1つのアポストロフィを削除します。前もって感謝します。

+0

あなたが尋ねる前に試してみましたか? –

答えて

4

あなたはString#squeezeを使用することができます。

"abc''xyz''".squeeze("'") 
#=> "abc'xyz'" 

この方法は、特定の文字の重複を取り除き、彼らはお互いの直後にある場合。これは、行の中のn文字を1つに減らします。例えば

、あなたはそれが次のように返します絞る、文字列" '''''' "を持っていた場合:

" '''''' ".squeeze("'") 
#=> " ' " 
+0

よかった、ありがとう! – athill16

+0

これはとても便利です。 –

+0

こんにちは@ athill16あなたの質問が解決された場合は、チェックマークをクリックして[受諾](https://meta.stackexchange.com/q/5234/179419)を検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – Piccolo

-1

String#squeeze何が必要ですし、gsubは本当に悪い考えです。

Benchmark.bm do |bm| 

    bm.report("squeeze") do 
    iterations.times do 
     "e''eee''e'e''''e".squeeze("'") 
    end 
    end 

    bm.report("gsub") do 
    iterations.times do 
     "e''eee''e'e''''e".gsub(/\'+/, "'") 
    end 
    end 
end 

と結果:

 user  system  total  real 
squeeze 6.109000 0.000000 6.109000 ( 6.110040) 
gsub 22.454000 0.000000 22.454000 (22.469204) 
関連する問題