是否有内置函数或更有效的方法将字符添加到字符串X次?
例如,以下代码将添加' 0'字符串5次:int count = 5;
char someChar = '0';
string myString = "SomeString";
for(int i=0;i<count;i++)
{
myString = someChar + myString;
}
答案 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。随着字符串大小的增加,+ =会导致数组副本的成本。