是否有内置方法可以多次向字符串添加字符?

时间:2014-05-24 14:27:55

标签: c# string for-loop

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

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

int count = 5;
char someChar = '0';
string myString = "SomeString";

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

5 个答案:

答案 0 :(得分:7)

使用PadLeft()PadRight()

PadRight()的示例:

int count = 5;
char someChar = '0';
string myString = "SomeString";

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

// output -> "SomeString00000"

请记住,任一方法的第一个参数都是字符串长度,因此我将原始字符串长度添加到计数器中。

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

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

// output -> "00000SomeString"

答案 1 :(得分:4)

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

将返回

&#34; 00000&#34;

参考:Is there a built-in function to repeat string or char in .net?

答案 2 :(得分:3)

你也可以这样做:

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

答案 3 :(得分:2)

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

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

请记住,字符串是 Immutable ,因此您需要将结果分配给新字符串。

答案 4 :(得分:1)

您也可以使用StringBuilder。随着字符串大小的增加,+ =会导致数组副本的成本。