2011-06-10 21 views
0

我試圖建立一些字符串排列很好,但格式不工作我期望的方式。C#字符串格式不排隊

如果我有:

String.Format("{0,-25}{1,-7}{2,-18}{3,-8}{4,-15}{5,-3}{6,-10}", 
       i.Name, "Price: ", i.Price.toString(), "Weight: ", 
       i.Weight.toString() + " lbs", "Quantity:",i.Quantity.toString())); 

我希望得到名稱(這是一個字符串)開始在該行的開頭,那麼「價格」開始人物26,依此類推。 (這些名稱都不超過10個字符)。相反,第二列是根據名稱長度遍佈的地方。

我試過這個也使用StringBuilder以及相同的結果。一些互聯網搜索只是顯示與我有的幾乎相同的代碼,所以我不知道什麼是不工作的。

編輯:固定的拼寫錯誤

+6

您是以等寬字體顯示結果嗎? – 2011-06-10 16:49:53

+0

您提供的代碼包含多個錯誤。如果它正確地被Capitol化了(標籤是C#,而不是Java!),你會傳遞一個「c」格式的字符串值。你在最後可能會出現一個斜線,可能是你的意思。如果您要發佈您遇到問題的真實代碼,我懷疑問題可能很明顯。 – 2011-06-10 16:55:51

回答

1

我懷疑問題是顯示器,而不是字符串本身。這些排列僅在字體是等寬字體時才起作用。等寬字體是每個字符寬度相同的字體。 Windows,Office,Visual Studio提供了其中的幾種。許多人認爲「Consolas」是最好的。

我建議你將顯示數據的任何控件的字體更改爲Consolas。

+0

就是這樣,謝謝。 – William 2011-06-10 17:09:58