數字以字符串形式出現,如"000105"
,我試圖找到忽略前導零的好方法。想到RegEx,但有時可能難以閱讀。我目前所做的是:優雅的方法來削減數字字符串中的前導0嗎?
stack = "000105" # => "000105"
overflow = stack.to_i.to_s # => "105"
有沒有一些更簡單/優雅的方式來做到這一點?將此字符串轉換爲整數並返回字符串感覺很笨重。
數字以字符串形式出現,如"000105"
,我試圖找到忽略前導零的好方法。想到RegEx,但有時可能難以閱讀。我目前所做的是:優雅的方法來削減數字字符串中的前導0嗎?
stack = "000105" # => "000105"
overflow = stack.to_i.to_s # => "105"
有沒有一些更簡單/優雅的方式來做到這一點?將此字符串轉換爲整數並返回字符串感覺很笨重。
我會做這樣的事情:
overflow = stack.sub(/^0+/, '')
或只是sub!
如果想stack
本身:
stack.sub!(/^0+/, '')
我會使用sub
而不是gsub
,因爲它只需要匹配一次。
建築回答,你可以做這樣的事情在Ruby中,
stack.sub!(/^0+/,'')
什麼? 'gsub'和'gsub!'之間的差異?有沒有像'ruby'中的'sub'這樣的函數,因爲這不需要在全局範圍內完成。 –
@AvinashRaj - 'gsub'不會永久地改變它被調用的對象/變量。然而,大多數以'!'結尾的'爆炸'方法將永久地改變它們。當你只是想暫時改變某個計算的東西時,你會使用.gsub,但仍然不想永久地改變你的變量本身。 –
@AvinashRaj y有'sub'檢查spickermann的答案。 – harshs08
錯過了。 :) .. – harshs08
雅,子就夠了.. –