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; } |
使用
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。
同样,如果要在字符串开头附加字符,请使用
1 2 3 | myString = myString.PadLeft(count + myString.Length, someChar); // output ->"00000SomeString" |
1 | string.Concat(Enumerable.Repeat("0", 5)); |
将返回
"00000"
引用自:在.NET中是否有可重复字符串或字符的内置函数?
您也可以这样做:
1 2 3 |
看这里,你可以用
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。当字符串大小增加时,+=会导致数组复制成本。