2012-05-15 15 views
10

¿Cómo aplico una máscara a una cadena con el objetivo de formatear el texto de salida de la siguiente manera (como máximo 2 ceros):Máscara para formatear int 1, 10, 100, a la cadena "001", "010", "100"

int a = 1, b = 10, c = 100; 
string aF = LeadingZeroFormat(a), bF = LeadingZeroFormat(b), cF = LeadingZeroFormat(c); 
Console.Writeline("{0}, {1}, {2}", aF, bF, cF); // "001, 010, 100" 

¿Cuál es la solución más elegante?

Gracias de antemano.

+0

http://stackoverflow.com/questions/3122677/add-zero-padding-to-a-string – murgatroid99

+0

posible duplicado de [Pad con ceros a la izquierda] (http : //stackoverflow.com/questions/3459610/pad-with-leading-zeros) –

Respuesta

31

Puede usar Int32.ToString ("000") para formatear un entero de esta manera. Para más detalles, véase Custom Numeric Format Strings y Int32.ToString:

string one = a.ToString("000"); // 001 
string two = b.ToString("000"); // 010 
+0

Gracias ... me ha ahorrado mucho tiempo – zeetit

12

Así como la sugerencia de Reed, puede hacerlo directamente en su cadena de formato compuesto:

int a = 1, b = 10, c = 100; 
Console.WriteLine("{0:000}, {1:000}, {2:000}", a, b, c); // "001, 010, 100" 
2

Para visualizar el número entero como un valor decimal, llame a su método ToString (String) y pase la cadena "Dn" como el valor del parámetro de formato, donde n representa la longitud mínima de la cadena.

int i = 10; 
Console.WriteLine(i.ToString("D3")); 

También compruebe How to: Pad a Number with Leading Zeros