0Pricing
C# Academy · 课时

使用 string.Format 进行复合格式化

使用索引占位符和对齐方式。

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

复合格式化

string.Format 使用带编号的占位符,例如 {0} 和 {1},它们分别对应后续传入的参数。

using System;

class Program {
    static void Main() {
        string msg = string.Format("Hello, {0}!", "Ada");
        Console.WriteLine(msg);
    }
}

多个参数

每个索引根据位置引用一个参数。{0} 表示第一个参数,{1} 表示第二个参数,以此类推。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("{0} + {1} = {2}", 2, 3, 5));
    }
}

重复使用索引

您可以多次使用同一个索引来重复使用参数,而无需将其传入两次。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("{0}{0}{0}", "ab"));
    }
}

冒号后的 Format 说明符

添加冒号和说明符可以控制格式,例如使用 {0:F2} 保留两位小数。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("Pi is {0:F2}", 3.14159));
    }
}

使用逗号进行对齐

逗号和宽度可以设置对齐方式:{0,8} 会在八个字符的宽度内右对齐;负宽度则表示左对齐。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("[{0,8}]", "hi"));
        Console.WriteLine(string.Format("[{0,-8}]", "hi"));
    }
}

同时设置对齐和格式

您可以将两者结合使用:{0,10:F2} 会保留两位小数,并在十个字符的宽度内右对齐。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("[{0,10:F2}]", 3.5));
    }
}

Console.WriteLine 格式化

Console.WriteLine 可以直接接受相同的复合格式字符串和参数。

using System;

class Program {
    static void Main() {
        Console.WriteLine("{0} scored {1} points", "Sam", 42);
    }
}

构建表格

对齐功能让您可以轻松地在控制台输出中创建简单的对齐表格。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("{0,-10}{1,5}", "Apples", 3));
        Console.WriteLine(string.Format("{0,-10}{1,5}", "Pears", 12));
    }
}

插值会编译成这样

在幕后,插值字符串通常会编译为复合格式化。两者是同一项功能的两种表现形式。

using System;

class Program {
    static void Main() {
        int n = 5;
        Console.WriteLine(string.Format("n = {0}", n));
        Console.WriteLine($"n = {n}");
    }
}

转义花括号

与字符串插值一样,在复合格式字符串中将花括号写成两个花括号即可按字面形式输出。

using System;

class Program {
    static void Main() {
        Console.WriteLine(string.Format("{{0}} shows literally, {0} shows value", 7));
    }
}

何时选择 Format

当模板单独存储时,复合格式化非常方便,例如将模板存放在用于本地化的资源文件中。

using System;

class Program {
    static void Main() {
        string template = "Welcome, {0}";
        Console.WriteLine(string.Format(template, "Lee"));
    }
}

快速检查

请测试您对复合格式化的了解。

回顾

string.Format 使用带索引的占位符({0}、{1}),根据位置将其映射到参数,并且可以重复使用这些占位符。冒号用于添加格式说明符,逗号用于设置对齐宽度。

它支持 Console.WriteLine 的格式化,并且是字符串插值的基础;当模板存放在单独的资源中时,它尤其适用。

常见问题解答

「使用 string.Format 进行复合格式化」课时是免费的吗?

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

「使用 string.Format 进行复合格式化」这节课中我会学到什么?

使用索引占位符和对齐方式。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

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

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

「使用 string.Format 进行复合格式化」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 字符串插值基础
  2. 使用 string.Format 进行复合格式化
  3. 数字与日期格式说明符
  4. 原始字符串字面量
← 返回 C# Academy