PadRight 当考虑到 crlf 不能正常工作时

PadRight when consider crlf is not working well

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

我希望每行中的第二部分字符串对齐。所以我使用 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);
}

输出喜欢

你可以看到三个 "Test" 没有垂直对齐。

如果你想对齐文本空格,那么你需要一个 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