2010-11-19 14 views
24

Im new to C# programming. Qualcuno può spiegare il seguente codice:Formato stringhe nel metodo Console.WriteLine

Console.WriteLine("{0}{1,10}", "Face", "Frequency"); //Headings 
Console.WriteLine("{0,4}{1,10}",someval,anotherval); 

Capisco che questo stampa due colonne di valori le voci di cui, e {0} fa riferimento al primo argomento dato. Ma qual è il significato delle stringhe di formato del modulo {x,y}?

risposta

53

Aggiunge il riempimento a sinistra. Molto utile per ricordare i vari modelli di formattazione stringa è la seguente foglietto:

.NET String.Format Cheat Sheet

I valori positivi aggiungono padding a sinistra, negativo add padding a destra

 
Sample         Generates 
String.Format("[{0, 10}]", "Foo");  [∙∙∙∙∙∙∙Foo] 
String.Format("[{0, 5}]", "Foo");  [∙∙Foo] 
String.Format("[{0, -5}]", "Foo");  [Foo∙∙] 
String.Format("[{0, -10}]", "Foo"); [Foo∙∙∙∙∙∙∙] 
+0

Grazie per la risposta 0xA3. Se capisco correttamente, vuol dire che {1,10} stamperebbe il secondo argomento e 10 spazi immediatamente dopo? – Joe

+0

@Joe: No, il riempimento significa che la stringa è piena di spazi vuoti fino alla lunghezza specificata, vedere l'esempio nella mia risposta. –

+2

Per quanto posso vedere, questo cheat sheet è completamente sbagliato! Viene utilizzato l'indice sbagliato e l'allineamento positivo/negativo è l'opposto di ciò che accade realmente. Quindi, per produrre '[∙∙∙∙∙∙∙ Foo]', si farebbe effettivamente 'String.Format (" [{0, 10}] "," Foo ");' –

3

Si prega di verificare this per un riferimento di formattazione della stringa molto buona.

3

Si tratta di un valore di riempimento ... se l'argomento non è la lunghezza specificata, mette in spazi.

Ad es se avevi {0,10} e l'argomento per {0} era "Blah", il valore effettivo stampato sarebbe "Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>" ... Blah, con 6 spazi extra per creare una stringa di 10 lunghezza

ps - non sai come mettere gli spazi effettivi in ​​... necessità di cercare in modo faq senza dubbio

8

Quando vedi {x,y}, x rappresenta l'indice della tesi e y l'allineamento, come specificato here. La sintassi completa è la seguente:

{index[,alignment][:formatString]}