替换C#中一个范围内的字符串

时间:2010-10-06 08:59:58

标签: c# .net

我有一个字符串myString,长度约为10000。

如果我myString.Replace("A","B");它将替换A到B的所有实例。

我怎么能不这样做而不是整个字符串,而只是字符5000-5500?

5 个答案:

答案 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

然后应用替换方法

然后再联合