以特定的最大字符数打印数字(或字符串)

ins*_*ity 0 c c# string

C# 中是否有相当于 C 的 printf("%8d", n)数字和字符串?

那么我是否可以以某种方式分配一个特定的大小来打印字符串或数字,如果字符串或数字较小,则会添加额外的空格?

Dyl*_*lan 5

字符串格式

格式说明符的格式为

{ index[,alignment][ :formatString] }
Run Code Online (Sandbox Code Playgroud)

我们可以插入 0 作为索引,8 作为对齐方式,使其对齐到 8 个字符。

{ index[,alignment][ :formatString] }
Run Code Online (Sandbox Code Playgroud)

这给了我们:

"    1234"
"              7"
Run Code Online (Sandbox Code Playgroud)

我们还可以为对齐方式指定一个负值,这将使字符串左对齐,而不是像以前那样右对齐。

string.Format("{0,-10}", 72);
Run Code Online (Sandbox Code Playgroud)

哪个输出

"72        "
Run Code Online (Sandbox Code Playgroud)

希望这能为您解决问题:)

编辑:

正如 chris 指出的那样,Console.WriteLine 函数本身采用格式字符串,从而无需显式调用 string.Format()。这意味着您可以像这样对齐字符串。

Console.WriteLine("\"{0,8}\"", 1234);
Run Code Online (Sandbox Code Playgroud)

格式化我们的字符串并将其写入控制台,所有这些都在一条语句中完成。