字符串格式

时间:2011-06-23 09:25:27

标签: c# string visual-studio-2010 formatting format

我正在努力调整价值观。 我想知道为什么会这样:

        string value = "";

        value += string.Format("{0,-10}", "value");
        value += string.Format("{0,5}", "value");

        value += Environment.NewLine;

        value += string.Format("{0,-8}", "val");
        value += string.Format("{0,7}", "value");

        MessageBox.Show(value);

如果我在之前检查值,我执行“MessageBox.Show()”正确。结果是:

value     value
val       value

应该如此,但是当我做MessageBox.show()时,他们会这样:

   value     value
   val     value

我真的不明白为什么用show()更改字符串?当我试图打印“值”时会发生同样的事情,然后它就不对齐了。

顺便说一句:这只是一个测试代码,所以你可以理解我在实际代码中遇到的问题。

3 个答案:

答案 0 :(得分:3)

那是因为MessageBox.Show使用的字体没有固定的宽度......

答案 1 :(得分:3)

这可能是由于消息框中使用的字体不是monospaced,这意味着每个字符占用的空间相等。您在Visual Studio调试器中使用的字体可能是,这就是填充看起来完全不同的原因。

您可以尝试使用制表符而不是空格来为您的格式化提供更好的结果。

答案 2 :(得分:0)

根据this回答,可以使用\t作为列分隔符。

这肯定涉及检查每个单列的所有单词的长度。这样您就可以知道是使用单个\t还是双\t\t等。