0Pricing
C# Academy · 课时

构建字符串

字符串连接与 StringBuilder。

构建字符串 是 CoddyKit 上的免费 C# Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。

使用 + 拼接字符串

构建字符串的最简单方式是使用 + 运算符连接各个片段。

这称为拼接。它适用于少量片段,例如将问候语与姓名组合起来。

class Program
{
    static void Main()
    {
        string name = "Sam";
        string greeting = "Hi, " + name;
        System.Console.WriteLine(greeting);
    }
}

字符串插值

插值是将值插入文本的一种更简洁的方式。

在字符串前加上 $,并将变量放在花括号中。值会自动插入相应位置。

class Program
{
    static void Main()
    {
        string name = "Sam";
        int age = 9;
        System.Console.WriteLine($"{name} is {age}");
    }
}

循环中使用 += 的代价

在循环中使用 += 扩展字符串会很慢。

由于字符串不可变,每次使用 += 都会创建一个全新的字符串,并复制所有旧字符。迭代次数较多时,这会浪费时间和内存。

string result = "";
for (int i = 0; i < 1000; i++)
    result += i; // creates many strings

认识 StringBuilder

StringBuilder 专为高效组装文本而设计。

它位于 System.Text 命名空间中。它不会每次都创建新字符串,而是扩展内部缓冲区,因此在进行大量添加时速度快得多。

using System.Text;

StringBuilder sb = new StringBuilder();

使用 StringBuilder 追加内容

调用 Append 可将文本添加到 StringBuilder 中。

您可以连续追加许多片段。构建器会将所有内容保存在其缓冲区中,直到您请求最终字符串。

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Hello");
        sb.Append(", world");
        System.Console.WriteLine(sb.ToString());
    }
}

获取最终字符串

StringBuilder 本身并不是一个 string。

完成追加后,调用 ToString 获取最终文本。之后,您可以像处理普通字符串一样输出或存储它。

using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Done");
string final = sb.ToString();

在循环中追加

这正是 StringBuilder 发挥优势的地方。

在循环中进行追加,构建器会高效地增长,避免 += 可能产生的复制操作。这个程序会构建一个数字字符串。

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
            sb.Append(i);
        System.Console.WriteLine(sb.ToString());
    }
}

AppendLine

AppendLine 的作用类似于 Append,但还会在文本后添加换行符。

它适合构建多行输出,例如构建一个让每个项目各占一行的列表。

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("Line 1");
        sb.AppendLine("Line 2");
        System.Console.Write(sb.ToString());
    }
}

从字符构建字符串

您也可以追加单个 char 值,而不仅仅是完整字符串。

当您需要逐字符转换文本时,这非常有用,例如在构建新结果时将每个字母转换为大写。

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in "loud")
            sb.Append(char.ToUpper(c));
        System.Console.WriteLine(sb.ToString());
    }
}

何时使用不同方法

对于少量片段,使用 + 或插值清晰且足够。

对于在循环中构建文本或连接许多片段,优先使用 StringBuilder。经验法则是:少量拼接使用运算符,大量拼接使用构建器。

string.Join

如果您已经有一个片段集合,string.Join 可以使用分隔符将它们组合起来。

先传入分隔符,再传入各个项目。对于简单列表,它是循环操作的简洁替代方案。

string[] parts = { "a", "b", "c" };
string joined = string.Join("-", parts);
// joined is "a-b-c"

快速检查

测试您对构建字符串的理解。

回顾

使用 + 或插值连接少量字符串,使用 string.Join 处理片段列表。

在循环中构建文本时,请使用 StringBuilder:调用 Append 或 AppendLine,然后调用 ToString 获取结果。由于字符串不可变,它可以避免 += 产生的高昂复制开销。

常见问题解答

「构建字符串」课时是免费的吗?

是的 — 「构建字符串」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。

「构建字符串」这节课中我会学到什么?

字符串连接与 StringBuilder。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 C# Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「构建字符串」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 C# Academy 课中编写并运行代码吗?

能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. char 类型
  2. 字符辅助方法
  3. 遍历字符串
  4. 构建字符串
← 返回 C# Academy