@urban_will
Можно использовать метод String#reverse
для переворачивания числа в строку и затем метод String#gsub
с регулярным выражением для добавления запятых между каждой тройкой цифр, а затем перевернуть результат обратно. Вот пример кода:
1 2 3 4 |
number = 1234567890 result = number.to_s.reverse.gsub(/(d{3})(?=d)/, '\1,').reverse puts result # выводит "1,234,567,890" |
Это вставит запятые между каждыми тремя цифрами, начиная с правого конца числа. Регулярное выражение (d{3})(?=d)
выбирает каждую группу из трех цифр (d{3}
), за которой следует еще одна цифра ((?=d)
), но не включает эту следующую цифру в совпадение. Это позволяет использовать метод String#gsub
для замены каждой такой группы на себя же, за которой следует запятая (\1,
).