【问题标题】:PadRight when consider crlf is not working wellPadRight 当考虑 crlf 不能正常工作时
【发布时间】:2017-09-16 05:06:18
【问题描述】:

我想打印多行。每行是一个字符串加上空格加上第二个字​​符串。

我希望每行中的第二部分字符串对齐。所以我使用 PadRight;但效果不好。

代码:

void Main()
{
   var str ="Hellooooo".PadRight(50)+"Test";
   str += (Environment.NewLine+"World").PadRight(50)+"Test";
   str+= (Environment.NewLine+"Hello Worldoooooooo").PadRight(50)+"Test";
   Console.WriteLine(str);
}

输出喜欢

您可以看到三个“测试”没有垂直对齐。

【问题讨论】:

  • 通常最好使用对表格更友好的控件。它真的需要使用空格对齐吗?如果不是控制台的输出。屏幕截图看起来不同。

标签: c# text-alignment


【解决方案1】:

如果你喜欢对齐文本空白,那么你需要一个mono space font(每个字符的宽度相同),比如 courier new。

Environment.NewLine 也在第二个和第三个字符串中,但不是第一个。

修复 Environment.NewLine 并使用等宽字体时,此方法有效:

public static void Main()
{
    var str ="Hellooooo".PadRight(50)+"Test";
    str += Environment.NewLine + ("World").PadRight(50)+"Test";
    str += Environment.NewLine + ("Hello Worldoooooooo").PadRight(50)+"Test";
    Console.WriteLine(str);
}

live demo

【讨论】:

  • 不,我把所有字母都改成了“o”。结果相同。我用 LinqPad 测试它。
  • 那么我该如何对齐它们呢?该字符串是在运行时生成的。
  • 输出是什么?文件?安慰?网页?
  • 是radgridview
  • LinqPad 不使用单声道空间输出:forum.linqpad.net/discussion/1150/…
猜你喜欢
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多