2010-10-06 2 views

ответ

18
StringBuilder myStringBuilder = new StringBuilder(myString); 
myStringBuilder.Replace("A", "B", 5000, 500); 
myString = myStringBuilder.ToString(); 

Для этого потребуется меньше выделения памяти, а затем методы, использующие String.Substring().

+0

+1: Отлично, никогда не знал об этой перегрузке. – Ani

+0

+1 Один из тех методов, которые я всегда пропускал. – bitbonk

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

рассмотреть вопрос об использовании StringBuilder, (который performes лучше строковые распределений), особенно поскольку строки длинны. .. –

0

Разделите строку, используя SubString, и объедините результаты, когда операция завершена.

Или, итерации по всей строке в качестве символа char [] и (на основе индекса) выборочно выполняют замену. Это не создаст столько новых экземпляров строк, но будет более хрупким.

0

разделить строку, чтобы сделать 3 подстрок, среднее существо:

myString.Substring (5000, 500) .Надеть ("А", "Б");

затем приклеить их обратно вместе.

0

разделить строку из символа 5000 до 5500

, а затем применить замену методу

затем CONCAT Афоризм