如何在c#中在控制台writeline中为字符串保留一定数量的字母
本文关键字:字符串 控制台 writeline 保留 | 更新日期: 2023-09-27 17:50:48
我想要的是
Console.WriteLine(
"{0}: {1}/{2}hp {3}/{4}mp {5}",
character.Identifier,
character.CurrentHealth,
character.MaxHealth,
character.CurrentMagic,
character.MaxMagic,
character.Fatigue
);
,然后有字符。标识符(基本上是一个名称)有一定数量的字母,如果需要,它会用空格替换,这样in可能会打印
Josh: 20/20hp 20/20mp 3
或
J: 20/20hp 20/20mp 3
但是HP,然后mp和其他的都是一致的。我知道它可能是{0:}之一,但我不能找出一个工作
{0}
表示法中的第二个参数可以给您一个固定宽度的字段,所以如果您希望标识符(名称)始终是10个字符长并且左对齐,您将使用{0,-10}
MSDN对于这类问题也是一个很好的资源,如果你阅读了字符串的文档。格式它有一个固定宽度表格的例子,可能类似于你想要的。
此外,正如Hogan的答案正确指出的那样,如果你想让它紧挨名称,你必须将:
附加到格式字符串之外的字符串。
可以使用:
右加空格character.Identifier.PadRight(10);
我相信这会达到你的目的:
const int colWidth = 10;
Console.WriteLine("{0,-"+colWidth.ToString()+"}{1,-"+colWidth.ToString()+"}{2,-"+colWidth.ToString()+"}{3}",
(character.Identifier+":").PadRight(colWidth+1).Remove(0,colWidth),
(character.CurrentHealth+"/"+character.MaxHealth+"hp").PadRight(colWidth+1).Remove(0,colWidth),
(character.CurrentMagic+"/"+character.MaxMagic+"mp").PadRight(colWidth+1).Remove(0,colWidth),
(character.Fatigue,colWidth));
这将在字符串末尾添加空格,然后截断结果。
请参阅文档中的String。格式的
我将:
附加到格式字符串之外的名称,并"合并"hp和mp部分,然后将它们放在一列中。