string:字符串常量,长度是固定的。用String来操作字符串的时候,一旦我们字符串的值改变,就会在内存创建多一个空间来保存新的字符串。
stringBuilder:字符串变量,使用Append拼接字符串。
所以对字符串添加或删除操作比较频繁的话。那就不要用String而用StringBuilder。
这里用代码测试一下二者的效率。代码如下:
1 { 2 Console.WriteLine("------------string----------------"); 3 Stopwatch sw = new Stopwatch(); 4 sw.Start(); 5 string s = null; 6 for (int i = 0; i < 20000; i++)//执行两万次 7 { 8 s = s + i+","; 9 } 10 sw.Stop(); 11 Console.WriteLine($"String执行时间:{sw.ElapsedMilliseconds}"); 12 } 13 { 14 Console.WriteLine("----------------stringBuilder-----------------"); 15 Stopwatch sw = new Stopwatch(); 16 sw.Start(); 17 StringBuilder sb = new StringBuilder(); 18 for (int i = 0; i < 20000; i++)//执行两万次 19 { 20 sb.Append(i + ","); 21 } 22 sw.Stop(); 23 Console.WriteLine($"StringBuilder执行时间:{sw.ElapsedMilliseconds}"); 24 }

stringBuilder使用总结:
Append:
Append 方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。
StringBuilder sb = new StringBuilder("My String"); sb.Append(" My World"); Console.WriteLine(sb);
AppendFormat:
此方法将文本添加到 StringBuilder 的结尾处,而且实现了 IFormattable 接口,因此可接受格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格式并将这些值追加到 StringBuilder 的后面。
Insert :
将字符串或对象添加到当前 StringBuilder 中的指定位置。
Remove :
从当前 StringBuilder 中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。
Replace:
可以用另一个指定的字符来替换 StringBuilder 对象内的字符。
浙公网安备 33010602011771号