检查号码并删除前导零

vec*_*ccy 20 ruby

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

如何才能做到这一点

sar*_*old 32

转换为整数并转换回字符串非常容易:

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"
Run Code Online (Sandbox Code Playgroud)

或者,对于花车:

irb(main):003:0> s="000.45" ; s.to_f.to_s
=> "0.45"
Run Code Online (Sandbox Code Playgroud)

  • 这也将删除三个前导零或一个前导零. (2认同)

sep*_*p2k 26

如果你在谈论字符串:

str.sub!(/^00/, "")
Run Code Online (Sandbox Code Playgroud)

/^00/如果字符串以两个零开头,则正则表达式匹配.sub!然后将匹配(两个零)并用空字符串替换它们.

  • 如果您要替换任意数量的前导零,只需将正则表达式替换为`/ ^ 0 + /` (19认同)

小智 25

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

str.sub!(/^[0]+/,'')
Run Code Online (Sandbox Code Playgroud)

+是一个适用于1或更多的正则表达式特殊字符.

  • 更简单:str.sub!(/ ^ 0 + /,'') (8认同)

Pau*_*rud 8

  • ^ 表示以
  • * 表示零个或多个

str.sub!(/^0*/, '')

该正则表达式可以与“1234”、“01234”、“001234”、“0001234”等一起使用。