PadLeft不起作用

时间:2011-06-30 11:53:05

标签: c# .net .net-4.0

我正在尝试在字符串之前多次添加一个字符。 C#中的AMAIK,它是PadLeft。

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

但它不起作用。我做错了吗?

4 个答案:

答案 0 :(得分:17)

第一个参数是返回字符串的总长度,因为“Mary”长度为4个字符,第一个参数为3,它按预期工作。如果您尝试firstName.PadLeft(6,'*'),您将获得** Mary

答案 1 :(得分:4)

您应该添加字符串的长度:

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

第一个参数(totalWidth)表示结果字符串长度。如果你的字符串长度小于totalWidth参数,PadLeft会添加如此多的字符,结果字符串长度将等于totalWidth。

答案 2 :(得分:3)

不,它有效。它将使用提供的字符在左侧填充,总字符串长度为3.因此,如果您想要***Mary的结果,则必须使用firstName.PadLeft(7, '*');

答案 3 :(得分:2)

3是字符串的总长度,所以如果你的字符串是“a”,它将变成“** a”

请参阅String.PadLeft Method (Int32, Char)