Есть ли встроенный метод в RoR, чтобы заполнить ноль для целого числа? - PullRequest
5 голосов
/ 25 января 2010

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

Ответы [ 3 ]

8 голосов
/ 25 января 2010
puts "%05d" % 1    # 00001

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

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

  • % - начало спецификатора формата
  • 0 - Подушка с ведущими нулями
  • 5 - сделать его длиной 5 символов
  • d - форматируемое целое число

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

"%d - %s" % [1, "One"]    # => 1 - one
4 голосов
/ 25 января 2010
puts 1.to_s.rjust(5,'0')
0 голосов
/ 25 января 2010
an_int = 1
'%05d' % an_int #=> 00001
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...