【发布时间】:2012-04-12 02:32:03
【问题描述】:
我需要在消息框中以特定格式打印一个字符串,我使用的代码类似于如下所示:
string text="";
for (int i=0; i<n; i++)
{
a=..
b=..
c=..
text += String.Format("{0, -8} {1,-4} {2,8}", a, b, c);
}
MessageBox.Show(text);
所以对于以下一组值:
XYZ,ABC,100
X,ABC,100
我得到以下输出:
XYZ ABC 100
X ABC 100
所以你可以看到第二行的格式不正确。 可能发生这种情况是因为我在 MessageBox 中打印它。 一个字符和一个“空格”占用的空间是不同的。 有什么解决办法吗?
【问题讨论】:
-
使用调试器判断是String.Format()还是MessageBox。
-
只是一个提示(与问题无关):在编写循环时更喜欢使用 StringBuilder 而不是将 += 与字符串一起使用(字符串是不可变的,因此 += 成本很高),这并不重要你的情况很多。
标签: c# messagebox string.format