我在一个简单的文本输出报告中显示 GUID 和数字。我怎样才能保持每个字符串的长度“固定”。

例如。目前,这就是正在发生的事情。 (坏的)。

[WaWorkerHost.exe] +-----------------------------------------------------------+
[WaWorkerHost.exe] +  RavenDb Initialization Report                            +
[WaWorkerHost.exe] +  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                            +
[WaWorkerHost.exe] +  o) Tenant Id: 50f1bf7f-7936-4aa9-aeca-e47b1d61bb85       +
[WaWorkerHost.exe] +  o) Number of Documents: 87                            +
[WaWorkerHost.exe] +  o) Number of Indexes: 5                            +
[WaWorkerHost.exe] +  o) Number of ~Stale Indexes: 0                            +
[WaWorkerHost.exe] +-----------------------------------------------------------+

我在追求什么...
[WaWorkerHost.exe] +-----------------------------------------------------------+
[WaWorkerHost.exe] +  RavenDb Initialization Report                            +
[WaWorkerHost.exe] +  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                            +
[WaWorkerHost.exe] +  o) Tenant Id: 50f1bf7f-7936-4aa9-aeca-e47b1d61bb85       +
[WaWorkerHost.exe] +  o) Number of Documents: 87                               +
[WaWorkerHost.exe] +  o) Number of Indexes: 5                                  +
[WaWorkerHost.exe] +  o) Number of ~Stale Indexes: 0                           +
[WaWorkerHost.exe] +-----------------------------------------------------------+

干杯!

(注意:guid 是固定长度,因此该行具有“硬编码”空格。

最佳答案

使用字符串格式:

static string BoxLine(int totalWidth, string format, params object[] args)
{
    string s = String.Format(format, args);
    return "+ " + s.PadRight(totalWidth - 4) + " +";
}

static string BoxStartEnd(int totalWidth)
{
    return "+" + new String('-',totalWidth-2) + "+";
}

String.Format 一样调用它,但在那里有宽度:
static void Main(string[] args)
{
    const int BoxWidth = 40;

    Console.WriteLine( BoxStartEnd(BoxWidth) );
    Console.WriteLine( BoxLine(BoxWidth, "Does this work: {0} {1}", 42, 64) );
    Console.WriteLine( BoxLine(BoxWidth, " -->Yep<--") );
    Console.WriteLine( BoxStartEnd(BoxWidth) );

    Console.Read();
}

输出:

+--------------------------------------+
+ Does this work: 42 64                +
+  -->Yep<--                           +
+--------------------------------------+
  • String.PadRight
  • 关于c# - 如何在 .NET 中将数字格式化为固定的字符串大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16391955/

    10-15 04:47