Ruby将整数拆分为数组

Ruby将整数拆分为数组,ruby,Ruby,我有这个值x=876885。我想将该值拆分为数组,如[876885] 这就是我试过的 x.to_s[0..2].split(',') #=> ["876"] 我怎样才能得到像[876885]这样的东西 这个怎么样: x = 876885 x.to_s.scan(/.../).map {|e| e.to_i } => [876, 885] 如果您希望能够处理任意长度的数字,则可以使用每个\u片来处理: 这个怎么样 [x.to_s[0..2], x.to_s[3..-1]] 顺便说

我有这个值
x=876885
。我想将该值拆分为数组,如
[876885]

这就是我试过的

x.to_s[0..2].split(',') #=> ["876"]
我怎样才能得到像
[876885]
这样的东西

这个怎么样:

x = 876885
x.to_s.scan(/.../).map {|e| e.to_i }
=> [876, 885]

如果您希望能够处理任意长度的数字,则可以使用
每个\u片来处理:

这个怎么样

[x.to_s[0..2], x.to_s[3..-1]]

顺便说一句,@DigitalRoss的答案对于6位数字来说是最好的。更普遍的解决办法是:

a = 876885
a.to_s.chars.each_slice(3).map { |a| a.join.to_i }

# ⇒ [
#  [0] 876,
#  [1] 885
#]

与DigitalRoss的答案类似

x.divmod(1000)

“[876885]”
不是一个数组,它是一个带有前后方括号的字符串。您想要一个整数数组,比如
[876885]
?如果号码是76885怎么办?是的。我想要一个像[876885]这样的整数数组。谢谢。如果电话号码是76885怎么办?@theTinMan,我不知道。我没有考虑过,这可能是一件值得考虑的事情。您的问题对于您的输入和期望的输出是不明确的。用逗号分隔一个整数表示数千,但对于人眼值的字符串表示以外的其他情况,这一点用处不大。如果原始数字是
100000
,它将不会返回字符串输出的可用值,因为您的数组将是
[100,0]
。类似地,
1234
将是
[123,4]
。因此,如果没有更好的解释,你的目标似乎毫无意义,也不会给出任何可用/一致的输出。这个表达式叫什么?你能给我一些单据吗?
%
是模运算符。查一查,真漂亮。优雅+1 :)
a = 876885
a.to_s.chars.each_slice(3).map { |a| a.join.to_i }

# ⇒ [
#  [0] 876,
#  [1] 885
#]
x.divmod(1000)