我有一个字符串myString,长度约为10000。
如果我myString.Replace("A","B");
它将替换A到B的所有实例。
我怎么能不这样做而不是整个字符串,而只是字符5000-5500?
答案 0 :(得分:18)
StringBuilder myStringBuilder = new StringBuilder(myString);
myStringBuilder.Replace("A", "B", 5000, 500);
myString = myStringBuilder.ToString();
使用String.Substring()的方法需要更少的内存分配。
答案 1 :(得分:1)
var sub1 = myString.SubString(0,4999);
var sub2 = myString.SubString(5000,500);
var sub3 = myString.SubString(5501,myString.Length-5501);
var result = sub1 + sub2.Replace("A","B") + sub3;
答案 2 :(得分:0)
使用SubString拆分字符串,并在操作完成时合并结果。
或者,遍历整个字符串作为char []和(基于索引)选择性地执行替换。这不会创建尽可能多的新字符串实例,但它更脆弱。
答案 3 :(得分:0)
拆分字符串以生成3个SubStrings,中间的一个是:
myString.Substring(5000,500).Replace(“A”,“B”);
然后将它们粘在一起。答案 4 :(得分:0)
将字符串从字符5000拆分为5500
然后应用替换方法
然后再联合