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

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。随着字符串大小的增加,+= 会产生数组复制成本。

【讨论】:

以上是关于是否有内置方法可以将字符多次添加到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

是否有内置方法可以将逗号分隔的字符串转换为数组?

.Net AJAX 中是不是有内置方法可以将对象手动序列化为 JSON 字符串?

是否可以将方法添加到 Scala 中的内置类型?

在 JavaScript 中重复一个字符串多次

是否有内置的方法来规范 Luxon 中的持续时间?

是否可以将方法添加到现有(内置)ActionScript Flash 类而不扩展它并创建一个新类?