Ruby 查找字符串中的第一个小数点
我有两组数字组成的字符串。我试图将它们拆分为两个子字符串,以便在每个小数点后有两位小数 我有以下代码:Ruby 查找字符串中的第一个小数点,ruby,Ruby,我有两组数字组成的字符串。我试图将它们拆分为两个子字符串,以便在每个小数点后有两位小数 我有以下代码: if homeodds.length == 10 then homeoddsp = homeodds[0,5].to_f bookieh = homeodds[5,5].to_f else homeoddsp = homeodds[0,4].to_f bookieh = homeodds[4,4].to_f end 它可以处理8位数的字符串: “1.211.90”翻译
if homeodds.length == 10 then
homeoddsp = homeodds[0,5].to_f
bookieh = homeodds[5,5].to_f
else
homeoddsp = homeodds[0,4].to_f
bookieh = homeodds[4,4].to_f
end
它可以处理8位数的字符串:
“1.211.90”
翻译为“1.21”
和“1.90”
十位数的字符串也可以工作:
“12.2113.00”
翻译为“12.21”
和“13.00”
当我有一个九位数的字符串,如“9.1110.00”
或“10.119.55”
,我需要找出第一个小数点在哪里,然后取两位数,以便余数成为第二个子字符串。在这些情况下,我无法始终这样做。您可以使用String#scan
来解决此特定问题
def decimal_splits(string)
string.scan(/\d+\.\d{2}/)
end
要分解正则表达式,请执行以下操作:
1或更多位数\d+
小数点\。
两位数字\d{2}
decimal_splits("9.1110.00")
#=> ["9.11", "10.00"]
decimal_splits("12.2113.00")
#=> ["12.21", "13.00"]
decimal_splits("1.211.90")
#=> ["1.21", "1.90"]
decimal_splits("10.119.55")
#=> ["10.11", "9.55"]
您可以使用String#scan
解决此特定问题
def decimal_splits(string)
string.scan(/\d+\.\d{2}/)
end
要分解正则表达式,请执行以下操作:
1或更多位数\d+
小数点\。
两位数字\d{2}
decimal_splits("9.1110.00")
#=> ["9.11", "10.00"]
decimal_splits("12.2113.00")
#=> ["12.21", "13.00"]
decimal_splits("1.211.90")
#=> ["1.21", "1.90"]
decimal_splits("10.119.55")
#=> ["10.11", "9.55"]