Ведущий ноль и приращение в рубине - PullRequest
2 голосов
/ 07 июля 2011

Я искал, как получить ведущий ноль в ruby, и я нашел решение: использовать% 02d " Теперь я хотел бы сделать цикл и сохранить этот ноль! Когда я делаю что-то вроде этого

i = "%02d" % "1".to_i
until (i == 10)
  puts i
  i += 1
end

У меня ошибка "Невозможно преобразовать FixNum в строку". Поэтому я решил сделать это

i = "%02d" % "1".to_i
"01"
until (i == 10)
  puts i
  i = i.to_i
  i += 1
end

Итак, на этот раз цикл работает, но только первое число имеет ведущий 0. У меня закончились идеи, поэтому я был бы признателен за небольшую помощь!

Ответы [ 3 ]

9 голосов
/ 07 июля 2011

Я не разработчик Ruby, но, по сути, я думаю, что вам нужно отделить идею число i и текстовое представление с ведущим 0 Так что что-то вроде:

for i in (1..10)
  puts "%02d" % i
end

(Как видно из других ответов, существует множество способов кодирования самого цикла.)

Здесь i - это всегда число, но выражение "%02d" % i форматирует i как двузначное число, только для целей отображения.

6 голосов
/ 07 июля 2011

Не преобразовывайте в строку для вывода, пока вы не будете готовы к выводу.Вы не увеличиваете строковые значения, как правило.

0.upto(10) { |i| puts "%02d" % i }
2 голосов
/ 07 июля 2011
10.times do |x|
  puts "%02d" % x
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...