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

czj · February 11, 2019 · Last by sevk replied at February 13, 2019 · 2330 hits
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)

Reply to LuckyGcc
line = "0,1,2,3"
line.split(',')
Reply to kikyous

如果必须用正则呢?

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

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

Reply to datty258

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

Reply to LuckyGcc

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

You need to Sign in before reply, if you don't have an account, please Sign up first.