在Ruby中循环遍历字符串

时间:2018-03-05 05:00:39

标签: ruby string

我输入"901000"作为以下方法的参数,我希望它删除最后三个零并返回"901"

def zeros(x)
    str = x.to_s
    i = str.length-1
    while str[i] == "0"
        str = str.delete(str[i])
        i = i-1
    end
    return str
end

但它会返回"91"。我无法理解为什么我的代码不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

首先,str"901000"i = str.length-15str[i]"0"。因此,

str = str.delete(str[i])

相当于

str = "901000".delete("0")

这会给你"91"

然后,i = i-1i变为4str[i](相当于"91"[4])变为nil,{ {1}}(相当于str[i] == 0)变为nil == 0。因此循环结束,返回值false,即str

要做你想做的事,一些简单的方法是:

"91"