我在一个简单的文本输出报告中显示 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/