使用StringBuilder重复字符串

本文关键字:字符串 StringBuilder 使用 | 更新日期: 2023-09-27 18:06:12

我想重复.- 40次,并使用StringBuilder将其保存到string

为什么不工作?

string result = new StringBuilder("").Append(".-",0,40).ToString();

我知道其他解决方案,但我想使用StringBuilder

使用StringBuilder重复字符串

这个方法并不像你想象的那样。2个int形参指定要追加的子字符串的起始索引和长度。

StringBuilder确实有一个你想要的方法:它被称为Insert:

sb.Insert(0, ".-", 40);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 40; i++)
{
     sb.Append(".-");
}
MessageBox.Show(sb.ToString());

如果你想多次重复一个字符串,你的选择是:

1-使用循环(正如@Balagurunathan的回答所指出的)

2-对于单个字符,可以使用:

string result = new string('a', 10); //aaaaaaaaaa

对于多于一个字符的字符串:

string result = string.Join("", Enumerable.Repeat(".-", 5)) //.-.-.-.-.-

所以我相信你想做的事情是这样的:

string result = new StringBuilder().Append(string.Join("", Enumerable.Repeat(".-", 40))).ToString();
然而,从性能的角度来看,我还是会坚持使用for循环