将字符串与字符串对齐.格式化()

本文关键字:字符串 格式化 对齐 | 更新日期: 2023-09-27 18:27:47

我得到了一个方法,它接收一条消息和一个Priority枚举,并返回一个格式化的字符串。

private string FormatMessage(string message, Priority priority)
{
    return string.Format("*{0,-6}* - {1}", priority, message);
}

Priority有三个可能的值:HighMediumLow

我使用string.Format的对齐选项,这样输出看起来会很好。我想要的输出是这样的:

*Low*    - First message
*Medium* - Second message
*Low*    - Third message

然而,我得到的是:

*Low   * - First message
*Medium* - Second message
*Low   * - Third message

我理解为什么会发生这种情况,但我想知道的是,是否有一种简单(正确)的方法可以通过使用string.Format并且不引入任何新变量来获得所需的输出。

将字符串与字符串对齐.格式化()

string.Format("{0,-8} - {1}", "*" + priority + "*", message);

或者,如果你觉得新奇:

string.Format("{0,-8} - {1}", string.Format("*{0}*", priority), message);
string.Format("{0,-8} - {1}", string.Join(priority, new [] {"*", "*"}), message);

你能把第一列放大到8个空格吗?,如果是。。。

private string FormatMessage(string message, Priority priority) 
{ 
    return string.Format("{0,-8} - {1}", "*" + priority.ToString() + "*", message); 
}