在Ruby中,說我有這個字符串:"abc''xyz''"
如何刪除一個字符串中重複的撇號?
(這些都是abc
後2個單引號和xyz
)
現在,我試圖找到一種方法,使之成爲該字符串:"abc'xyz'"
我想在兩個撇號背靠背的位置只從這個字符串中刪除一個撇號。提前致謝。
在Ruby中,說我有這個字符串:"abc''xyz''"
如何刪除一個字符串中重複的撇號?
(這些都是abc
後2個單引號和xyz
)
現在,我試圖找到一種方法,使之成爲該字符串:"abc'xyz'"
我想在兩個撇號背靠背的位置只從這個字符串中刪除一個撇號。提前致謝。
您可以使用String#squeeze
:
"abc''xyz''".squeeze("'")
#=> "abc'xyz'"
此方法刪除某個字符的副本,如果他們是在彼此之後立即。它將連續減少n個字符至一個。
舉例來說,如果你有串" '''''' "
,擠壓它會返回如下:
" '''''' ".squeeze("'")
#=> " ' "
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)
在提問前試過什麼? –