Нахождение первого десятичного числа в строке - PullRequest
0 голосов
/ 05 июня 2018

У меня есть строки, которые состоят из двух партий чисел.Я пытаюсь разделить их на две подстроки, чтобы после каждого десятичного разделителя было два десятичных знака.

У меня есть этот код:

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

Он обрабатывает восьмизначную строку штрафа: "1.211.90" переводит в "1.21" и "1.90".

и десятьтакже работает строка цифр: "12.2113.00" переводится в "12.21" и "13.00".

Когда у меня есть строка из девяти цифр, такая как "9.1110.00" или "10.119.55", мне нужно выяснить, где находится первый десятичный знаки возьмите две цифры после этого, чтобы остаток стал второй подстрокой.Эти случаи я не могу последовательно делать.

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете использовать String#scan для этой конкретной проблемы

def decimal_splits(string)
  string.scan(/\d+\.\d{2}/)
end

Чтобы разбить регулярное выражение:

  • \d+ 1 или более количество цифр
  • \. десятичная точка
  • \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"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...