irb(main):086:0> -123/10 => -13
如何使得结果直接得到: -12
[3] pry(main)> Integer(-123 / 10.0) => -12
(-123/10.to_f).ceil # => -12
-12.3.to_i
新手借楼提问
我想从line中提取每一个数字,该怎么写呢?
line
re = /^(\d+)(,(\d+))*/ line = "0,1,2,3" a = re.match(line) (0...a.length).each do |index| puts a[index] end
输出
0,1,2,3 0 ,3 3
这样无法提取到中间的数字 (1 和 2)
line = "0,1,2,3" line.split(',')
如果必须用正则呢?
line = '1,2,3,4' line.scan(/\d+/)
ruby 测试正则网站 https://rubular.com/
谢谢,你给了我新的思路。首先通过正则验证line满足/^(\d+)(,(\d+))*$/这个格式,再使用line.scan(/\d+/)去提取每一个数字
/^(\d+)(,(\d+))*$/
line.scan(/\d+/)
不验证,直接 scan 应该也可以