给定一个括号内包含两个数字的字符串,我如何将这些数字分配给变量以使代码干净。 "CAR(1.2 2.5) 它是从数据库返回的字符串,我需要两个变量中括号中的数字。
a, b = "CAR(1.2 2.5)". ???
和结果:
a = 1.2
b = 2.5
问候
答案 0 :(得分:1)
应该这样做:
a, b = "CAR(1.2 2.5)".scan(/\d+(?:\.\d+)?/).map(&:to_f)
scan
将查找字符串中出现的任何数字,而 map(&:to_f)
将该数字转换为浮点数。您可能希望改用 BigDecimal,具体取决于您的需要。
但是,这里有一件令人吃惊的事情——你为什么需要这样做?您正在编写自己的解析器吗?