8

特定の数 (1 から 100 の間) の空白を StringBuilder に追加するにはどうすればよいですか?

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

「理想的な」解決策は何ですか?forループは醜いです。whitespaces[i]正確に空白を含む文字列を含む配列を作成することもできますiが、それはかなり長いハードコードされた配列になります。

4

3 に答える 3

18

StringBuilder.Append(char,int)指定された Unicode 文字を指定された回数繰り返すメソッドを使用できます。

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

さらに良いことに、両方の追加を 1 つの操作に結合します。

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

timeこれにより、文字列が追加され、その後に100 - time.Lengthスペースが続きます。

編集:パディングされた時間を構築するためにのみを使用している場合はStringBuilder、それを完全に廃止できます:

string nextLine = time.PadRight(100);
于 2012-06-03T11:47:40.610 に答える
6

とを取るStringBuilder.Append オーバーロードを使用できます。charint

nextLine.Append(' ', 100 - time.Length);
于 2012-06-03T11:52:36.307 に答える
2

PadLeft を使用 -

nextLine.Append(String.Empty.PadLeft(' ', 100 - time.Length));
于 2012-06-03T11:48:09.060 に答える