2010-01-25 12 views

Respuesta

8
puts "%05d" % 1 # 00001 

Ver: String::%, Kernel::sprintf

Esto es lo que está pasando. El "%05d" a la izquierda del % es un especificador de formato de estilo C. La variable en el lado derecho del% es lo que se va a formatear. El especificador de formato puede ser decodificada como esto:

  • % - principio del especificador de formato
  • 0 - Pad con ceros a la izquierda
  • 5 - Que sea 5 caracteres
  • d - La cosa se está dando formato es un entero

Si estaba formateando múltiples cosas, te las pone en una matriz:

"%d - %s" % [1, "One"] # => 1 - one 
+0

simple y elegante, pero no entiendo el código. me parece un poco extraño – DNB5brims

+0

% d significa decimal, que se refiere al valor después del%, el 05 significa rellenar ceros al decimal para hacerlo de longitud 5. –

+2

El formato se basa en printf de C. Es utilizado por muchos idiomas, por lo que vale la pena aprenderlo. http://en.wikipedia.org/wiki/Printf – srboisvert

4
puts 1.to_s.rjust(5,'0') 
0
an_int = 1 
'%05d' % an_int #=> 00001 
Cuestiones relacionadas