如何在Ruby中的每四个整数之间创建空格?

Tri*_*rip 6 ruby ruby-on-rails

我想尝试以下数字:

423523420987
Run Code Online (Sandbox Code Playgroud)

并将其转换为:

4235 2342 0987
Run Code Online (Sandbox Code Playgroud)

它也不一定是整数.事实上,我更喜欢它是一个字符串.

Mar*_*ers 13

您可以使用String::gsub正则表达式:

=> 'abcdefghijkl'.gsub(/.{4}(?=.)/, '\0 ')
'abcd efgh ijkl'
Run Code Online (Sandbox Code Playgroud)


Jör*_*tag 13

class String
  def in_groups_of(n, sep=' ')
    chars.each_slice(n).map(&:join).join(sep)
  end
end

423523420987.to_s.in_groups_of(4)      # => '4235 2342 0987'
423523420987.to_s.in_groups_of(5, '-') # => '42352-34209-87'
Run Code Online (Sandbox Code Playgroud)