字符串格式和打印

时间:2011-06-23 13:16:37

标签: c# string printing 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");

        Print(value);

如果我在“打印”之前检查了值,那就是正确的。结果是:

value     value
val       value

正如他们应该的那样,但当我向我的打印机打印“价值”时,他们会这样:

   value     value
   val     value

我真的无法理解为什么在打印文本时它会改变字符串?

我曾尝试使用“\ t”,但我的打印机似乎并不理解“\ t”,因为标签没有打印出来。

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

2 个答案:

答案 0 :(得分:2)

这可能是由使用不同字符宽度的字体引起的。在非固定宽度字体中,空格通常比字母和数字窄,因此可能看起来缺少空格。请考虑使用Lucida Console或其他固定宽度字体。

答案 1 :(得分:2)

您的控制台使用固定宽度字体,而打印机不使用(至少默认情况下)。因此,空间占用的打印机空间较小,而且字母会根据实际宽度占用更多或更少的空间。