2017-06-12 97 views
-2

在Ruby中,說我有這個字符串:"abc''xyz''"如何刪除一個字符串中重複的撇號?

(這些都是abc後2個單引號和xyz

現在,我試圖找到一種方法,使之成爲該字符串:"abc'xyz'"

我想在兩個撇號背靠背的位置只從這個字符串中刪除一個撇號。提前致謝。

+0

在提問前試過什麼? –

回答

4

您可以使用String#squeeze

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

此方法刪除某個字符的副本,如果他們是在彼此之後立即。它將連續減少n個字符至一個。

舉例來說,如果你有串" '''''' ",擠壓它會返回如下:

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

太好了,謝謝! – athill16

+0

這非常方便。 –

+0

Hi @ 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) 
相關問題