2011-09-17 14 views

risposta

5

Sulla base del vostro esempio, immagino che userete queste stringhe per aiutare a azzerare alcuni numeri. In questo caso, sarebbe più semplice utilizzare il metodo String.PadLeft() per eseguire il riempimento. Potresti usare la funzione simile anche in python, rjust().

esempio,

var str = "5"; 
var padded = str.PadLeft(8, '0'); // pad the string to 8 characters, filling in '0's 
// padded = "00000005" 

In caso contrario, se hai bisogno di una sequenza ripetuta di stringhe, che ci si vuole utilizzare il metodo String.Concat() in combinazione con il metodo Enumerable.Repeat(). L'utilizzo del costruttore di stringhe consente solo la ripetizione di un singolo carattere.

ad esempio,

var chr = '0'; 
var repeatedChr = new String(chr, 8); 
// repeatedChr = "00000000"; 
var str = "ha"; 
// var repeatedStr = new String(str, 5); // error, no equivalent 
var repeated = String.Concat(Enumerable.Repeat(str, 5)); 
// repeated = "hahahahaha" 
5

Uno dei String ctor overloads farà questo per voi:

string zeros = new String('0', 5); 
+0

C'è una differenza tra il '' STRING' e STRING'? – Mob

+1

[Nope] (http://stackoverflow.com/questions/7074/in-c-sharp-what-is-the-difference-between-string-and-string) –

2

Usa

string s = new string('0', 5); 

Trovato here

4

Per aggiungere alle altre risposte, non sarà in grado di utilizzare questo costruttore di stringhe con un'altra stringa per ripetere stringhe, come ad esempio string s = new string("O", 5);. Funziona solo con caratteri.

Tuttavia, è possibile utilizzare Enumerable.Repeat() dopo aver aggiunto using System.Linq; per ottenere il risultato desiderato con le stringhe.

string s = string.Concat(Enumerable.Repeat("O", 5)); 
+0

Non esiste un costruttore che ripete stringhe, solo per i personaggi. –

+0

@Jeff Mercado Questo è quello che ho detto. – Scott

+0

Ah oops, non ho notato che l'hai detto. È meglio escludere codice che non funzioni, quindi non confondere le persone come me per pensare che tu stia suggerendo che funzioni o, per lo meno, formattarlo in modo che non appaia come un codice normale. :) –

0

A seconda dell'applicazione, questo può essere utile anche:

int n = 0; 
string s = n.ToString().PadRight(5, '0'); 
0

Non mai, mai usare questo: string.Join("0", new string[6]);

Perché non solo "00000 "?! anatre

+0

Le anti-risposte possono essere buone se è possibile fornire una soluzione migliore. Questo è sicuramente qualcosa che non vuoi fare, ma scrivere la stringa letterale potrebbe non essere sempre fattibile. –

0

Questo funziona solo con lo zero: 0.ToString("D5");