2017-04-19 56 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