是否有内置方法可以将字符多次添加到字符串中?
Posted
技术标签:
【中文标题】是否有内置方法可以将字符多次添加到字符串中?【英文标题】:Is there built-in method to add character multiple times to a string? 【发布时间】:2014-07-13 19:26:45 【问题描述】:是否有内置函数或更有效的方法可以将字符添加到字符串 X 次?
例如,下面的代码会在字符串中添加 5 次 '0' 字符:
int count = 5;
char someChar = '0';
string myString = "SomeString";
for(int i=0;i<count;i++)
myString = someChar + myString;
【问题讨论】:
Is there a built-in function to repeat string or char in .net? 的可能重复项 @Sajeetharan 在我的情况下使用PadRight()
或PadLeft()
效率更高,并且可以以最小的开销完成我需要的工作。
Best way to repeat a character in C#的可能重复
【参考方案1】:
使用PadLeft()
或PadRight()
PadRight()
的示例:
int count = 5;
char someChar = '0';
string myString = "SomeString";
myString = myString.PadRight(count + myString.Length, someChar);
// output -> "SomeString00000"
记住这两种方法的第一个参数是所需的 total 字符串长度,因此我将 count 添加到原始字符串长度。
同样,如果您想在字符串开头附加字符,请使用PadLeft()
myString = myString.PadLeft(count + myString.Length, someChar);
// output -> "00000SomeString"
【讨论】:
OP 向左填充 @UlfKristiansen 当我第一次阅读问题时,我可以发誓那个字符被添加到字符串的末尾!已更新两个选项 - 谢谢【参考方案2】:string.Concat(Enumerable.Repeat("0", 5));
会回来
“00000”
引用自:Is there a built-in function to repeat string or char in .net?
【讨论】:
【参考方案3】:你也可以这样做:
string line = "abc";
line = "abc" + new String('X', 5);
//line == abcXXXXX
【讨论】:
【参考方案4】:看这里,你可以使用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
请记住,字符串是不可变的,因此您需要将结果分配给新字符串。
【讨论】:
@VladimirOselsky,我更新了...我只是在展示如何使用该功能。【参考方案5】:您也可以使用 StringBuilder。随着字符串大小的增加,+= 会产生数组复制成本。
【讨论】:
以上是关于是否有内置方法可以将字符多次添加到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章