我设法在控制台中创建了一个简单的C#表,关于这一点有足够多的线程。该问题是由于具有不同大小的字符(例如,'iiiii'(5个字符)比'there'(5个字符)短),表将永远不会对齐。
有没有办法计算字符串值的实际长度,以便判断需要添加多少空格才能将较短的字符串与表的其余部分对齐?
(我试图在这里直观地显示它,但似乎在这个网站使用的字体中,所有字符都具有相同的大小(和/或填充),但是,我可以发送一个屏幕截图)

发布于 2021-01-19 15:07:40
您应该将实际的制表符( \t转义序列)嵌入到每个输出字符串中,而不是尝试手动将文本与任意空格字符串对齐。
Console.WriteLine("Row1:" + "\t"
+ "iiiiiii" );
Console.WriteLine("Row2:" + "\t"
+ "7 chars" );发布于 2021-01-19 15:37:48
如果您知道控制台字体名称和大小,您可以尝试使用TextRenderer.MeasureText来获取以像素为单位的字符串宽度。然后将空格添加到较短的空格中,直到字符串对齐。
当然,您不会通过这种方式获得精确的定位,但它可能会满足您的需求。
更新。您可以参考How to measure the pixel width of a digit in a given font / size (C#)和/或其他类似问题了解更多详细信息。
https://stackoverflow.com/questions/65786645
复制相似问题