什么是Ruby相当于substr?

时间:2012-01-31 17:19:24

标签: ruby string

我正在尝试在Ruby中实现以下代码并陷入困境。

我查看了文档,但它们都处理字符串而不是对象。

PHP代码:

if ( substr($new_price, -2) != '00' ) {

我试过的Ruby代码:

if new_price[-2,2] != '00'
if new_price.to_s.slice[-2,2] != '00'

编辑:

对于目前的使用情况,只是为了检查价格是否有小数,我改用了这个:

if new_price.ceil != new_price

我仍然很好奇如何在Ruby中正确地做到这一点。

3 个答案:

答案 0 :(得分:4)

在Ruby中,您可以使用(例如)此代码获取字符串的最后两个元素:

price = '200'
puts price[-2..-1]
#=> 00

您还可以将last(n)方法添加到String类中,如下所示:

class String
  def last(n)
    self[-n..-1] || self
  end
end

然后你可以写这样的代码:

puts price.last(2)
#=> 00

puts price.last(100)
#=> 200

答案 1 :(得分:2)

unless new_price.to_s.end_with?('00')

答案 2 :(得分:0)

尝试:

if new_price.to_s.slice(-2, 2) != '00'