我想检查ruby中的变量,看看它是否有两个前导零(00)如果是,则应删除00
如何做到这一点
答案 0 :(得分:28)
转换为整数并转换回字符串非常容易:
irb(main):007:0> s="009" ; s.to_i.to_s
=> "9"
irb(main):008:0> s="004" ; s.to_i.to_s
=> "4"
irb(main):009:0> s="00999" ; s.to_i.to_s
=> "999"
或者,对于花车:
irb(main):003:0> s="000.45" ; s.to_f.to_s
=> "0.45"
答案 1 :(得分:23)
如果你在谈论字符串:
str.sub!(/^00/, "")
如果字符串以两个零开头,则正则表达式/^00/
匹配。然后sub!
将匹配(两个零)并用空字符串替换它们。
答案 2 :(得分:23)
str.sub!(/^[0]+/,'')
+是一个适用于1或更多的正则表达式特殊字符。
答案 3 :(得分:2)
str.sub!(/^0*/, '')
该正则表达式可以与“1234”,“01234”,“001234”,“0001234”等一起使用。
答案 4 :(得分:2)
Ruby 2.5
str.delete_prefix("00") # Delete exactly two zeros