Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PadLeft不';行不通_C#_.net_.net 4.0 - Fatal编程技术网

C# PadLeft不';行不通

C# PadLeft不';行不通,c#,.net,.net-4.0,C#,.net,.net 4.0,我多次尝试在字符串之前添加字符。阿梅克在C#,它在左边 string firstName = "Mary"; firstName = firstName.PadLeft(3, '*'); // This should return ***Mary 但它不起作用。我做错什么了吗?不,它起作用了。它将在左侧填充提供的字符,总字符串长度为3。因此,如果您希望得到***Mary的结果,则必须使用firstName.PadLeft(7,'*')3是字符串的总长度,因此如果字符串为“a”,则它将变为“**

我多次尝试在字符串之前添加字符。阿梅克在C#,它在左边

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

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

不,它起作用了。它将在左侧填充提供的字符,总字符串长度为3。因此,如果您希望得到
***Mary
的结果,则必须使用
firstName.PadLeft(7,'*')

3是字符串的总长度,因此如果字符串为“a”,则它将变为“**a”


请参见

第一个参数是返回字符串的总长度,因为“Mary”的长度为4个字符,而您的第一个参数为3个字符,所以它可以正常工作。如果您尝试
firstName.PadLeft(6,“*”)
您将得到**Mary。

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

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

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

对不起,上面的说法并不完全正确,但这只是因为so似乎想从我的帖子中删除*个字符,但我想你已经明白了要点。此外,如果您只是在字符串的开头添加静态数量的字符,只需使用firstName=“***”+firstName,填充方式如下:“.PadLeft(23)+firstName;这回答了你的问题吗?