检查号码并删除前导零

时间:2010-08-14 11:57:16

标签: ruby

我想检查ruby中的变量,看看它是否有两个前导零(00)如果是,则应删除00

如何做到这一点

5 个答案:

答案 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)

OP明确要求删除两个零,但是对于其他有兴趣删除所有前导零的注释并且在正则表达式中可能不那么强,你可以用它来代替:

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
相关问题