如何在C#中为控制台writeline中的字符串保留一定数量的字母

Dan*_*Dan 5 c# console.writeline

好吧基本上我想要类似的东西

Console.WriteLine(
    "{0}:   {1}/{2}hp    {3}/{4}mp   {5}", 
    character.Identifier, 
    character.CurrentHealth, 
    character.MaxHealth,
    character.CurrentMagic, 
    character.MaxMagic, 
    character.Fatigue
    );
Run Code Online (Sandbox Code Playgroud)

然后有character.Identifier(基本上是一个名字)有一定数量的字母,如果需要它将用空格替换,以便在打印

Josh:   20/20hp    20/20mp   3
Run Code Online (Sandbox Code Playgroud)

要么

J:      20/20hp    20/20mp   3
Run Code Online (Sandbox Code Playgroud)

但HP和然后mp和其他一切都在排队.我知道它可能是{0:}中的一个,但我无法找出一个有效的

Wil*_*ean 5

{0}符号中的第二个参数可以为您提供固定的宽度字段,因此如果您希望标识符(名称)始终为10个字符并且左对齐,则可以使用{0,-10}

对于这类问题,MSDN也是一个很好的资源,如果您阅读了String.Format的文档,它有一个固定宽度表的示例,可能与您想要的类似.

此外,正如Hogan的答案正确指出的那样,:如果您希望将其直接放在名称旁边,则必须将其附加到格式字符串之外的字符串中.


Cra*_*g T 5

您可以使用以下方法在字符串右侧填充空格:

character.Identifier.PadRight(10);
Run Code Online (Sandbox Code Playgroud)

这应该会给你你想要的格式。