2010-08-27 25 views
10

Tengo el siguiente código:¿Por qué PadLeft no funciona?

string foo = "blah".PadLeft(4, ' '); 

Pero cuando compruebo que, en lugar de ser foo "____blah" (con 4 espacios al principio), es sólo "blah". ¿Por qué PadLeft no hace lo que espero?

Respuesta

18

Debido a que el first argument is total length of resulting string y no es el número de caracteres para rellenar. Por lo tanto, en su ejemplo, desea utilizar 8 en lugar de 4.

+3

Uh, vale ... Es un comportamiento extraño, al menos para mí. Gracias por la ayuda :) – RCIX

+4

@RCIX: Es un comportamiento bastante inteligente, ya que el uso más común para el pad es crear una cadena de longitud fija y, a continuación, es muy simple de usar, no es necesario calcular la longitud usted mismo. –

+0

@Albin Sunnanbo: Gracias, no podría haberlo dicho mejor. –

2

El primer argumento para PadLeft especifica total longitud resultante que desea. Como "blah" comienza con cuatro caracteres, no se agrega relleno cuando especifica una longitud de cuatro. Si desea insertar cuatro espacios, cambie su llamada a string foo = "blah".PadLft(8, ' '); Como el carácter de relleno predeterminado es un espacio, puede omitir especificarlo y simplemente usar string foo = "blah".PadLeft(8)

Cuestiones relacionadas