我在十进制类型列中将价格字符串保存到我的数据库中。价格是这样的“$ 123.99”这很好,因为我写了一些代码来删除“$”(美元符号和空格)。但是我似乎忘记了价格可能包含逗号。所以“$ 1,234.99”打破了我的代码。我怎样才能删除逗号?
这是我删除美元符号和空格的代码:
def price=(price_str)
write_attribute(:price, price_str.sub("$ ", ""))
# possible code to remove comma also?
end
答案 0 :(得分:4)
您可以轻松地通过两种方式实现目标。
String的delete
方法适用于删除所有出现的目标字符串:
'$ 1.23'.delete('$ ,') # => "1.23"
'$ 123,456.00'.delete('$ ,') # => "123456.00"
或者,使用String's tr
方法:
'$ 1.23'.tr('$, ', '') # => "1.23"
'$ 123,456.00'.tr('$ ,', '') # => "123456.00"
tr
需要搜索一串字符,并使用一串字符来替换它们。将其视为一系列gsub
方法,每个字符一个。
但等等!还有更多!如果替换字符串为空,则将删除搜索字符串中的所有字符。