Ruby 优雅的方式切割领先的0';在一系列的数字中?
一个数字以字符串的形式出现,比如Ruby 优雅的方式切割领先的0';在一系列的数字中?,ruby,regex,string,integer,Ruby,Regex,String,Integer,一个数字以字符串的形式出现,比如“000105”,我正试图找到一种忽略前导零的好方法。一个正则表达式浮现在脑海中,但有时它们会变得难以阅读。我现在做的是: stack = "000105" # => "000105" overflow = stack.to_i.to_s # => "105" 有没有更简单/优雅的方法?将此字符串转换为整数并返回字符串感觉很笨拙。您可以使用 ^0+ 替换为空字符串。请参阅演示 您可以使用 ^0+ 替换为空字符串
“000105”
,我正试图找到一种忽略前导零的好方法。一个正则表达式浮现在脑海中,但有时它们会变得难以阅读。我现在做的是:
stack = "000105" # => "000105"
overflow = stack.to_i.to_s # => "105"
有没有更简单/优雅的方法?将此字符串转换为整数并返回字符串感觉很笨拙。您可以使用
^0+
替换为空字符串
。请参阅演示
您可以使用
^0+
替换为空字符串
。请参阅演示
基于@vks answer,您可以在ruby中执行类似操作
stack.sub!(/^0+/,'')
基于@vks answer,您可以在ruby中执行类似的操作
stack.sub!(/^0+/,'')
我会这样做:
overflow = stack.sub(/^0+/, '')
或者干脆sub代码>如果要更改堆栈本身,请执行以下操作:
stack.sub!(/^0+/, '')
我会使用sub
而不是gsub
,因为它只需要匹配一次。我会这样做:
overflow = stack.sub(/^0+/, '')
或者干脆sub代码>如果要更改堆栈本身,请执行以下操作:
stack.sub!(/^0+/, '')
我会使用sub
而不是gsub
,因为它只需要匹配一次。什么是?gsub
和gsub之间的差异代码>?在ruby
中是否有类似sub
的函数,因为这不需要全局执行。@AvinashRaj--gsub
不会永久更改正在调用它的对象/变量。大多数以结尾的“bang”方法但是,代码>将永久更改它们。当您只是想暂时更改计算内容,但仍然不想永久更改变量本身时,可以使用.gsub。这是什么意思?gsub
和gsub之间的差异代码>?在ruby
中是否有类似sub
的函数,因为这不需要全局执行。@AvinashRaj--gsub
不会永久更改正在调用它的对象/变量。大多数以结尾的“bang”方法但是,代码>将永久更改它们。当您只是想暂时更改计算内容,但仍然不想永久更改变量本身时,可以使用.gsub。