StringBuilder
普通字符串 string 一旦写出来就不能改了。你每次用 + 拼接,C# 都会偷偷扔掉旧的、造一个新的,拼 100 次就要造 100 个垃圾,程序会越来越慢。
StringBuilder 像一本草稿本,你可以在上面不断涂改、追加,最后一次性誊写成正式文稿。既快又省内存。
——————————————————————————————————————————————————————————————————————————————————————————————————
案例 1:拼接几句话
csharp
using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("你好");
sb.Append(",世界");
sb.Append("!");
sb.AppendLine(); // 换行
sb.AppendLine("第二行");
Console.WriteLine(sb.ToString());
Append 是往后加字,AppendLine 是加字并换行,最后 ToString() 把草稿本内容打印出来。
——————————————————————————————————————————————————————————————————————————————————————————————————
案例 2:循环拼数字(StringBuilder 的强项)
csharp
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++)
{
sb.Append(i);
sb.Append(" ");
}
Console.WriteLine(sb.ToString());
// 输出:1 2 3 4 5
如果在循环里写 s = s + i,每次都会造一个新字符串;用 StringBuilder 只在一个本子上写,效率高得多。
——————————————————————————————————————————————————————————————————————————————————————————————————
案例 3:格式化插入内容
csharp
StringBuilder sb = new StringBuilder();
sb.AppendFormat("姓名:{0},年龄:{1}", "小明", 20);
sb.AppendLine();
sb.Append("状态:在线");
Console.WriteLine(sb);
AppendFormat 像 Console.WriteLine 一样,可以把变量填进模板里,直接写到草稿本上。

浙公网安备 33010602011771号