我有这个价值x = 876885
。我想将该值拆分为数组,例如[876,885]
这是我尝试过的
x.to_s[0..2].split(',') #=> ["876"]
我怎样才能得到类似的东西[876,885]
?
我有这个价值x = 876885
。我想将该值拆分为数组,例如[876,885]
这是我尝试过的
x.to_s[0..2].split(',') #=> ["876"]
我怎样才能得到类似的东西[876,885]
?
类似于 DigitalRoss 的回答。
x.divmod(1000)
[x/1000, x%1000] # => [876, 885]
这个怎么样:
x = 876885
x.to_s.scan(/.../).map {|e| e.to_i }
=> [876, 885]
如果您希望能够处理任意长度的数字,那么您可以使用each_slice
:http ://ruby-doc.org/core-2.0/Enumerable.html#method-i-each_slice
876885.to_s.each_char.each_slice(3).map{|x| x.join}
顺便说一句,@DigitalRoss 的答案是 6 位数字的最佳答案。更通用的解决方案是:
a = 876885
a.to_s.chars.each_slice(3).map { |a| a.join.to_i }
# ⇒ [
# [0] 876,
# [1] 885
#]
这个怎么样?
[x.to_s[0..2], x.to_s[3..-1]]