0

我想以一种简单有效的方式(即速度快、内存少)替换字符串生成器末尾的倒数第二个字符。我猜这个字符串大约是 200-300 mb(不确定)。我该怎么做 ?如果输入字符串末尾还有换行符,答案会改变吗?

谢谢。

4

2 回答 2

3

您可以使用StringBuilder.Chars覆盖特定字符StringBuilder

// For example, replace 'x' into the 2nd to last char
stringBuilder[stringBuilder.Length-2] = 'x';
于 2013-10-28T23:31:05.627 回答
3

StringBuilder使用一个字符数组作为其后备存储。一个简单的

StringBuilder sb = new StringBuilder() ;
sb.Append( GetSomeEnormousString() ) ;

sb[ sb.Length - 2 ] = '*' ;

应该做你。

在涉及的任何分页之外,它是直接内存访问。

于 2013-10-28T23:32:41.983 回答