Есть ли какой-либо встроенный метод в RoR для заполнения нуля для целого числа?

Если я хочу "00001" вместо "1" кроме записи моего собственного нулевого метода заполнения, там, кто-либо созданный в методе может помочь мне заполнить нуль для целого числа?

5
задан John Topley 25 January 2010 в 17:09
поделиться

3 ответа

puts "%05d" % 1    # 00001

См. Строка: Строка ::% , Ядро :: Sprintf

Вот что происходит. «% 05D» слева от % представляет собой спецификатор формата в стиле C. Переменная на правой стороне% - это то, что нужно отформатировать. Спецификатор формата может быть декодирован таким образом:

  • % - начало спецификатора формата
  • 0 - PAD с ведущими Zeros
  • 5 - сделать его длиной 5 символов
  • D - то, что формат отформатирован - это целое число

Если вы форматировали несколько вещей, вы бы положили их в массив:

"%d - %s" % [1, "One"]    # => 1 - one
8
ответ дан 13 December 2019 в 05:35
поделиться
puts 1.to_s.rjust(5,'0')
4
ответ дан 13 December 2019 в 05:35
поделиться
an_int = 1
'%05d' % an_int #=> 00001
0
ответ дан 13 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: