2011-06-30 51 views
3

我想在字符串前多次添加一個字符。在C#中的AMAIK,它是PadLeft。PadLeft不起作用

string firstName = "Mary"; 
firstName = firstName.PadLeft(3, '*'); // This should return ***Mary 

但它不起作用。難道我做錯了什麼?

+0

那它做了什麼呢? –

回答

15

第一個參數是返回的字符串的總長度,如「瑪麗」是4個字符長,你的第一個參數是3,它是按預期工作。如果您嘗試firstName.PadLeft(6,「*」),你會得到**瑪麗

3

不,它的工作原理。它將在左邊填充所提供的字符,總長度爲3.所以,如果你想得到結果***Mary,你將不得不使用firstName.PadLeft(7, '*');

+0

對不起,上面的內容並不完全正確,但那只是因爲SO似乎喜歡從我的帖子中刪除*字符,但我認爲您可以獲得它的要點。 –

+0

另外,如果你只是在字符串的開頭添加一個靜態數量的字符,只需使用firstName =「***」+ firstName –

+1

如何填充像這樣:「」.PadLeft(23)+ firstName; – amalgamate

4

你應該像添加一個字符串的長度:

firstName = firstName.PadLeft(firstName.Length + 3, '*'); 

第一個參數(totalWidth)表示結果字符串長度。如果字符串長度小於totalWidth參數,則PadLeft會添加很多字符,結果字符串長度將等於totalWidth。