字符串类Replace和Stringbuilder Replace
本文关键字:Replace Stringbuilder 字符串 | 更新日期: 2023-09-27 17:53:02
string s = "value_test_this";
string m = s.Replace('e','E');
StringBuilder strBuilder = new StringBuilder("value_test_this");
strBuilder.Replace('e','E');
既然字符串是不可变的,那么Replace
在字符串类中是如何工作的呢,
它在内存中创建另一个字符串,然后将m
指向该新字符串。旧字符串也保留在内存中。
这就是为什么StringBuilder
应该被使用,如果频繁的修改必须对字符串。
如果你想知道为什么字符串在c#中是不可变的,看看这个SO讨论
如果你做一个字符串。替换它只是简单地创建一个新的字符串(因为,正如你所说,它是不可变的)。在StringBuilder中,没有创建新的字符串,您已经修改的字符串。