2017-04-19 22 views
-2

我要打印很多行。每行是一个字符串加上空格加上第二个字​​符串。PadRight时需要考虑的CRLF都不尽如人意

我想在每行对准第二部分字符串。所以我使用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); 
} 

输出喜欢 1

你可以看到三个 “测试” 不垂直对齐。

+0

通常它能够更好地使用多个表友好的控制。它是否真的需要使用空格对齐?如果它不是控制台的输出。截图看起来不同。 – CSharpie

回答

0

如果你喜欢对齐文本空格,那么你需要一个mono space font(每个字符宽度相同),如快递新。

另外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); 
} 

result

live demo

+0

不,我将所有字母改为'o'。同样的结果。我测试LinqPad。 – Bigeyes

+0

是的,因为空间的宽度不是一个“o”? – Julian

+0

那么我该如何对齐它们呢?该字符串在运行时生成。 – Bigeyes