关于c#:是否有内置方法可以多次向字符串添加字符?

Is there built-in method to add character multiple times to a string?

是否有一个内置函数或更有效的方法将字符添加到字符串x次?

例如,以下代码将向字符串添加"0"字符5次:

1
2
3
4
5
6
7
8
int count = 5;
char someChar = '0';
string myString ="SomeString";

for(int i=0;i<count;i++)
{
    myString = someChar + myString;
}


使用PadLeft()PadRight()

PadRight()的一个例子:

1
2
3
4
5
6
7
int count = 5;
char someChar = '0';
string myString ="SomeString";

myString = myString.PadRight(count + myString.Length, someChar);

// output ->"SomeString00000"

请记住,这两种方法的第一个参数都是所需的字符串总长度,因此我要为原始字符串长度添加count。

同样,如果要在字符串开头附加字符,请使用PadLeft()

1
2
3
myString = myString.PadLeft(count + myString.Length, someChar);

// output ->"00000SomeString"


1
string.Concat(Enumerable.Repeat("0", 5));

将返回

"00000"

引用自:在.NET中是否有可重复字符串或字符的内置函数?


您也可以这样做:

1
2
3
string line ="abc";
line ="abc" + new String('X', 5);
//line == abcXXXXX


看这里,你可以用PadRight()/PadLeft()

1
2
3
4
5
6
7
8
9
int count = 5;
char someChar = '0';
string myString ="SomeString";
var stringLength = myString.Length;

var newPaddedStringRight = myString.PadRight(stringLength  + count, '0');
//will give SomeString00000
var newPaddedStringLeft = myString.PadLeft(stringLength  + count, '0');
//will give 00000SomeString

记住,字符串是不可变的,所以您需要将结果赋给一个新的字符串。


也可以使用StringBuilder。当字符串大小增加时,+=会导致数组复制成本。