2012-05-15 10 views
10

Come applicare una maschera a una stringa che mira a formattare il testo di output nel modo seguente (al massimo 2 zeri):Maschera per formattare int 1, 10, 100, con stringa "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" 

Qual è la soluzione più elegante?

Grazie in anticipo.

+0

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

+0

possibile duplicato di [Pad con zeri] (http : //stackoverflow.com/questions/3459610/pad-with-leading-zeros) –

risposta

31

È possibile utilizzare Int32.ToString ("000") per formattare un numero intero in questo modo. Per i dettagli, consultare Custom Numeric Format Strings e Int32.ToString:

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

Grazie ... ho risparmiato molto del mio tempo – zeetit

12

Così come il suggerimento di Reed, è possibile farlo direttamente nella stringa di formato composto:

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

Per visualizzare il numero intero come valore decimale, chiama il metodo ToString (String) e passa la stringa "Dn" come valore del parametro format, dove n rappresenta la lunghezza minima della stringa.

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

Verificate anche How to: Pad a Number with Leading Zeros