使用 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 反馈 — 无需本地设置。
此课程中的所有课时
- 字符串插值基础
- 使用 string.Format 进行复合格式化
- 数字与日期格式说明符
- 原始字符串字面量