Rails 这样的数字序列,应该怎样写

stephen · 2012年06月12日 · 最后由 yggg 回复于 2012年06月12日 · 2081 次阅读
[002001..002671,300001..300329,000001..000999,600000..601999,603000,603001,603002,603123,603128,603333,603366].each do |range|
      range.to_a.each do |n|
        puts n
      end    
    end

每个数字 002002 都是要这个的格式,然后做处理,应该要把他变成字符串,不过之前的 002001..002671 这样写正确吗? 报错

Invalid octal digit
...671,300001..300329,000001..000999,600000..601999,603000,6030...

0 开头的数字是 8 进制,0d 开头的数字才是 10 进制

想要代码整齐可以

0d002002

想要输出整齐可以

puts '%06d' % 2002

不行啊 00 是 8 进制的,里面出现比 7 大的就报错

(2001..2012).map{|i| i.to_s.rjust(6, '0')}
匿名 #4 2012年06月12日

楼上很巧妙,想想只能先用 string 来保存 用的时候再 to_i

需要 登录 后方可回复, 如果你还没有账号请 注册新账号