将字符串与空格对齐

时间:2013-09-12 21:38:01

标签: c#

有没有办法在C#中完美地对齐两个字符串? 我试图将字符串“CBI”与“中央调查局”对齐,我希望两个字符串占用35个字符。我使用函数

string.Format("{0,-35}", str);

格式化两个字符串。但它们似乎没有正确对齐。它与字体设置有关吗? 我必须在excel的图表中使用这些字符串,并且它们必须在屏幕上占据相同的宽度

2 个答案:

答案 0 :(得分:6)

PadLeftPadRight

str.PadLeft(35);
str.PadRight(35);

str = "BBQ and Slaw";
Console.WriteLine(str.PadLeft(15));  // Displays "   BBQ and Slaw".
Console.Write(str.PadRight(15));     // Displays "BBQ and Slaw   ".

文档附注:

  

但是,如果totalWidth小于此实例的长度,则该方法返回对现有实例的引用

基本上,如果您的长度小于字符串的长度,则返回现有字符串的引用


如果EvenMcDonnal希望将其包含在答案中,我很乐意将其从我的答案中删除。

您可以找到可以使用的here

的MonoSpaced字体列表

答案 1 :(得分:0)

我发现我从不满足于等宽字体,所以我使用带有微空格字符(约1像素宽)(字符)0x200A的字符填充来排序。在使用字符串列表模拟列对齐时,这尤其有用。最灵活的方法是使用while循环比较字符串像素宽度并添加空格字符直到匹配。我使用带有NoPadding标志的System.Windows.Forms.TextRenderer.MeasureText()并且只是要保存,初始大小为int.MaxValue,然后检查System.Drawing.Size的Width参数。如果您在MeasureText构造函数中输入任何Font,它可以使用任何字体。