我正在努力调整价值观。我想知道为什么会这样:
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”,因为标签没有打印出来。
顺便说一句:这只是一个测试代码,所以你可以理解我在实际代码中遇到的问题。
答案 0 :(得分:2)
这可能是由使用不同字符宽度的字体引起的。在非固定宽度字体中,空格通常比字母和数字窄,因此可能看起来缺少空格。请考虑使用Lucida Console
或其他固定宽度字体。
答案 1 :(得分:2)
您的控制台使用固定宽度字体,而打印机不使用(至少默认情况下)。因此,空间占用的打印机空间较小,而且字母会根据实际宽度占用更多或更少的空间。