在ROR中乘以字符串和整数组合中的整数

时间:2013-06-27 07:58:27

标签: ruby-on-rails ruby

例如,如果我们有一个像:

这样的字符串
duration = "2.days" 

如何在“2.days”中将这个2与3相乘得到:  “6.days”

5 个答案:

答案 0 :(得分:3)

如果您的意思是使用辅助方法:

2.days
# => 2 days

2.days * 3
# => 1036800

如果你的意思是操纵字符串:

duration = "2.days"
p = duration.split('.')
[ p[0].to_i * 3, p[1] ].join('.')
# => "6.days"

答案 1 :(得分:2)

如果您希望将字符串乘以“5.months 2.days 3.minutes”

,则以下代码非常有用
"5.months 2.days 3.minutes".gsub(/\d+/){|s| s.to_i*3}
=> "15.months 6.days 9.minutes"

答案 2 :(得分:1)

如果你想从一个字符串开始并产生一个字符串,那么正则表达式通常是最好的方法。

"2.days".sub(/\d+/){|s| s.to_i*3}

答案 3 :(得分:0)

(duration.split('.').first.to_i * 3).to_s + '.days'

答案 4 :(得分:0)

duration = "2.days" 
duration[0] = (duration[0].to_i * 3).to_s
p duration # => "6.days"