2012-03-03 128 views
1

我有以下代碼:可變長度的String.Format

var str = "ABC"; 
var n = 7; 
var output = String.Format("{0,n}", str); 

這應該輸出字符串

" ABC" 

我應該如何改變上述行?

+1

'str.Length'和'n'如何關聯? 'n'應該代表'str.Length'的值嗎? – 2012-03-03 02:54:36

+0

對不起,我在上面的代碼中犯了一些錯誤並修復了它。 – 2012-03-03 03:00:10

回答

8

格式字符串僅僅是字符串太 - 你可以定義單獨的格式:

int n = 3; 
string format = string.Format("{{0,{0}}}", n); 
//or more readable: string format = "{0," + n + "}"; 
var output = string.Format(format, str); 

編輯:

您的更新後,它看起來像你想也可以通過PadLeft()取得的成就:

var str = "ABC"; 
string output = str.PadLeft(7); 
+0

也許我不能使用PadLeft,因爲字符串並不總是恆定的(上面只是一個例子),但我也忘記了這個函數。謝謝。 – 2012-03-03 03:56:53

6

只寫:

var lineLength = String.Format("{0," + n + "}", str); 
+0

比可接受的答案更可讀(並使用更少的行) – Doug 2013-11-02 02:54:29

1
var s="Hello my friend"; 
string leftSpace = s.PadLeft(20,' '); //pad left with special character 
string rightSpace = s.PadRight(20,' '); //pad right with special character