gpt4 book ai didi

c# - 控制台输出的自定义格式

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:38 30 4
gpt4 key购买 nike

所以我正在尝试编写一个库,以便在控制台中进行一些简单的格式化,这样我就不必在每次创建项目时都这样做。其中包括我想创建一个方法,将您输入的字符串放入一个框中。

这是我的代码:

 public static void DrawBox(string message, char borderChar, ConsoleColor messageColor, ConsoleColor borderColor, int padTop, int padBottom)
{

for (int i = 0; i < Console.WindowWidth; i++)
{
Console.ForegroundColor = borderColor;
Console.Write(borderChar);
}
for (int i = 0; i < padTop; i++)
{
Console.Write(string.Format("{0,0}" + "{0," + (Console.WindowWidth - 1) + "}",borderChar));
}

Console.ForegroundColor = borderColor;
Console.Write(string.Format("{0,0}", borderChar));

Console.ForegroundColor = messageColor;
Console.Write("{0," + ((Console.WindowWidth / 2) + message.Length / 2) + "}", message);

Console.ForegroundColor = borderColor;
Console.Write("{0," + (((Console.WindowWidth / 5) + message.Length / 5)) + "}", borderChar);

for (int i = 0; i < padBottom; i++)
{
Console.WriteLine(string.Format("{0,0}" + "{0," + (Console.WindowWidth - 1) + "}", borderChar));
}

for (int i = 0; i < Console.WindowWidth; i++)
{
Console.ForegroundColor = borderColor;
Console.Write(borderChar);
}
}

这行得通,但如果你输入一个更大的字符串,它就会出错。我该怎么做才能使字符串的格式像这样无论消息有多大。

*            hi             *
* world *

最佳答案

用这些替换中间的 6 行应该可以解决问题

Console.ForegroundColor = borderColor;
Console.Write("{0,-" + (Console.WindowWidth - message.Length) / 2 + "}", borderChar);

Console.ForegroundColor = messageColor;
Console.Write(message);

Console.ForegroundColor = borderColor;
Console.Write("{0," + ((Console.WindowWidth - message.Length) / 2 + message.Length % 2) + "}", borderChar);

关于c# - 控制台输出的自定义格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22831107/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com