如何使用 String.Format() 在 C# 中正确对齐字符串?
How to properly align strings in C# using String.Format()?
伙计们,很抱歉向这个网站提出如此无聊的问题,但即使在阅读了有关 C# 的文档并查看了他们的示例之后,我似乎也找不到对此的解释。
也就是说,我有这样的代码:
String s = "Hello";
String n = "World";
String s1 = "LALALALALALALA";
String n1 = "heyy";
String s2 = "sffsdfsfdsfsd";
String n2 = "dsfsdfdsfdsfsdsd";
String z = String.Format("{0,-20}{1,-10}", s, n);
String z1 = String.Format("{0,-20}{1,-10}", s1, n1);
String z2 = String.Format("{0,-20}{1,-10}", s2, n2);
(这段代码只是为了测试)
现在,当我使用:
Console.WriteLine(z);
Console.WriteLine(z1);
Console.WriteLine(z2);
将输出写入控制台,它按我预期的那样工作; 20 个空格分配给字符串参数 {0},接下来的空格分配给字符串参数 {1}。但是,当我 运行 表单中的完全相同的代码(作为 MessageBox 输出,甚至是 TextBox 文本时,我得到的结果是混乱的。参数 {0} 没问题,但是参数 {1} 似乎随机开始距 {0} 结尾的距离。
发生这种情况是否有原因?我该如何解决?
感谢您的回答!
这取决于字体。某些字体的所有字母宽度都不相同。如果您尝试 Consolas,它会正常工作。
伙计们,很抱歉向这个网站提出如此无聊的问题,但即使在阅读了有关 C# 的文档并查看了他们的示例之后,我似乎也找不到对此的解释。
也就是说,我有这样的代码:
String s = "Hello";
String n = "World";
String s1 = "LALALALALALALA";
String n1 = "heyy";
String s2 = "sffsdfsfdsfsd";
String n2 = "dsfsdfdsfdsfsdsd";
String z = String.Format("{0,-20}{1,-10}", s, n);
String z1 = String.Format("{0,-20}{1,-10}", s1, n1);
String z2 = String.Format("{0,-20}{1,-10}", s2, n2);
(这段代码只是为了测试)
现在,当我使用:
Console.WriteLine(z);
Console.WriteLine(z1);
Console.WriteLine(z2);
将输出写入控制台,它按我预期的那样工作; 20 个空格分配给字符串参数 {0},接下来的空格分配给字符串参数 {1}。但是,当我 运行 表单中的完全相同的代码(作为 MessageBox 输出,甚至是 TextBox 文本时,我得到的结果是混乱的。参数 {0} 没问题,但是参数 {1} 似乎随机开始距 {0} 结尾的距离。
发生这种情况是否有原因?我该如何解决?
感谢您的回答!
这取决于字体。某些字体的所有字母宽度都不相同。如果您尝试 Consolas,它会正常工作。