Форматировать строку Ruby до 3 символов с целым числом - PullRequest
0 голосов
/ 26 апреля 2018

Я хотел бы для этого сценария

 (1..134).each do |x|
   puts "0#{x}" # ????
 end

для вывода:

001
002
...
011
...
134

Возможно ли это без использования нескольких операторов if, использующих только собственный формат? Он не должен обрабатывать более 3 цифр.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Один из способов получить желаемое заполнение нулями - использовать #rjust:

(1..134).each do |x|
  puts x.to_s.rjust(3, '0')
end

Надеюсь, это поможет!

0 голосов
/ 26 апреля 2018

Конечно. Это можно сделать с помощью следующего форматера:

'%03d' % 1   # 001
'%03d' % 10  # 010
'%03d' % 100 # 100

Цикл будет выглядеть так:

(1..134).each { |x| puts '%03d' % x }

Существует также Kernel # format метод, который делает именно это, но не требует пояснений:

(1..134).each { |x| puts format('%03d', x) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...