新手问题 负数整除取整问题

czj · 2019年02月11日 · 最后由 sevk 回复于 2019年02月13日 · 2331 次阅读
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中提取每一个数字,该怎么写呢?

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)

LuckyGcc 回复
line = "0,1,2,3"
line.split(',')
kikyous 回复

如果必须用正则呢?

LuckyGcc 回复
line = '1,2,3,4'
line.scan(/\d+/)

ruby 测试正则网站 https://rubular.com/

datty258 回复

谢谢,你给了我新的思路。首先通过正则验证line满足/^(\d+)(,(\d+))*$/这个格式,再使用line.scan(/\d+/)去提取每一个数字

LuckyGcc 回复

不验证,直接 scan 应该也可以

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