如何向StringBuilder添加一定数量的空格?

jav*_*red 7 c#

如何向StringBuilder添加一定数量(1到100之间)的空格?

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

什么是"理想"的解决方案?for循环是丑陋的.我也可以创建whitespaces[i]包含完全包含i空格的字符串的数组,但这将是相当长的硬编码数组.

Dou*_*las 15

您可以使用该StringBuilder.Append(char,int)方法,该方法重复指定的Unicode字符指定的次数:

nextLine.Append(time);
nextLine.Append(' ', 100 - time.Length);
Run Code Online (Sandbox Code Playgroud)

更好的是,将两个附加组合成一个操作:

nextLine.Append(time.PadRight(100));
Run Code Online (Sandbox Code Playgroud)

这会附加你的time字符串,后跟100 - time.Length空格.

编辑:如果你只是使用StringBuilder构建填充时间,那么你可以完全取消它:

string nextLine = time.PadRight(100);
Run Code Online (Sandbox Code Playgroud)

  • 叹息......因为downvoters似乎有一个实地日,我正在编辑我的答案. (2认同)

dtb*_*dtb 5

你可以使用带有a 和a 的StringBuilder.Append重载:charint

nextLine.Append(' ', 100 - time.Length);
Run Code Online (Sandbox Code Playgroud)