我有一个值x = 876885。我想把这个值拆分成[876,885]这样的数组这是我试过的
x = 876885
[876,885]
x.to_s[0..2].split(',') #=> ["876"]
如何获得类似[876,885]的内容?
inn6fuwd1#
与DigitalRoss的答案相似。
x.divmod(1000)
kninwzqo2#
[x/1000, x%1000] # => [876, 885]
wqnecbli3#
不如这样:
x = 876885 x.to_s.scan(/.../).map {|e| e.to_i } => [876, 885]
z0qdvdin4#
如果您希望能够处理任意长度的数字,则可以使用each_slice:
each_slice
876885.to_s.each_char.each_slice(3).map{|x| x.join}
wztqucjr5#
这样如何?
[x.to_s[0..2], x.to_s[3..-1]]
polkgigr6#
@DigitalRoss的solution最适合6位数字,但这里有一个更通用的solution:
a = 876885 a.to_s.chars.each_slice(3).map { |a| a.join.to_i } # ⇒ [ # [0] 876, # [1] 885 #]
6条答案
按热度按时间inn6fuwd1#
与DigitalRoss的答案相似。
kninwzqo2#
wqnecbli3#
不如这样:
z0qdvdin4#
如果您希望能够处理任意长度的数字,则可以使用
each_slice
:wztqucjr5#
这样如何?
polkgigr6#
@DigitalRoss的solution最适合6位数字,但这里有一个更通用的solution: