2011-09-17 13 views

Respuesta

5

Según su ejemplo, supongo que va a utilizar estas cadenas para ayudar a cero algunos números. Si ese es el caso, sería más fácil usar el método String.PadLeft() para hacer su relleno. También podría estar usando la función similar en python, rjust().

por ejemplo,

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

De lo contrario si necesita una secuencia repetida de cadenas, que te gustaría utilizar el método String.Concat() en conjunción con el método Enumerable.Repeat(). Usar el constructor de cadenas solo permite la repetición de un solo carácter.

por ejemplo,

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 de los String ctor overloads lo hará por usted:

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

¿Hay una diferencia entre '' string' y string'? – Mob

+1

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

2

Uso

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

Encontrado here

4

Para añadir a las otras respuestas, usted no será capaz de utilizar este constructor de cadenas con otra cadena para repetir cadenas, como string s = new string("O", 5);. Esto solo funciona con caracteres.

Sin embargo, puede usar Enumerable.Repeat() después de agregar using System.Linq; para obtener el resultado deseado con las cadenas.

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

No existe tal constructor que repite cadenas, solo para personajes –

+0

@Jeff Mercado Eso es lo que dije. – Scott

+0

Ah, oops, no noté que dijiste eso. Es mejor dejar fuera el código que no funciona para que no confundas a las personas como yo con pensar que estás sugiriendo que funciona o, al menos, formatearlo para que no aparezca como código normal. :) –

0

Dependiendo de la aplicación, esto puede ser útil también:

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

No nunca, nunca utilice este: string.Join("0", new string[6]);

¿Por qué no "00000 "?! patos

+0

Las respuestas incorrectas pueden ser buenas si puede proporcionar una mejor solución. Eso definitivamente es algo que no quieres hacer, pero escribir el literal de la cadena podría no ser siempre factible. –

0

Éste sólo funciona con cero: 0.ToString("D5");