2012-06-03 9 views
5

¿Cómo puedo agregar cierto número (entre 1 y 100) de espacios en blanco a StringBuilder?cómo agregar cierto número de espacios en blanco a StringBuilder?

StringBuilder nextLine = new StringBuilder(); 
string time = Util.CurrentTime; 
nextLine.Append(time); 
nextLine.Append(/* add (100 - time.Length) whitespaces */); 

¿Cuál sería la solución "ideal"? for loop es feo. También puedo crear una matriz donde whitespaces[i] contiene una cadena que contiene exactamente i espacios en blanco, pero eso sería una matriz bastante larga codificada.

Respuesta

13

Usted puede utilizar el método StringBuilder.Append(char,int), que repite el carácter Unicode especificado un número determinado de veces:

nextLine.Append(time); 
nextLine.Append(' ', 100 - time.Length); 

Mejor aún, combinar ambos anexa en una sola operación:

nextLine.Append(time.PadRight(100)); 

Esto haría añada su cadena time, seguida de 100 - time.Length espacios.

Editar: Si sólo está utilizando la StringBuilder para construir el tiempo de acolchado, entonces usted puede acabar con ella por completo:

string nextLine = time.PadRight(100); 
+0

La creación de una cadena intermedia derrota de alguna manera el propósito de StringBuilder, ¿no? – dtb

+1

@dtb: suponía que 'StringBuilder' se usa para construir una cadena sustancialmente más larga que el' tiempo 'relleno. Si no lo es, entonces un simple 'time.PadRight (100)' evitaría la necesidad de 'StringBuilder' en primer lugar. – Douglas

+0

sí, estoy usando 'StringBuilder' más tarde para agregar más datos – javapowered

2

Uso PadLeft -

nextLine.Append(String.Empty.PadLeft(' ', 100 - time.Length)); 
Cuestiones relacionadas