C# 里的字符串几乎贯穿所有文本处理场景:从变量赋值、路径表示,到日志输出、数据拆分和格式化展示,都会频繁用到 string。这篇文章按“先理解类型,再解决常见操作,最后处理输出格式”的顺序整理核心用法,读完后你可以更快判断什么时候直接用字符串方法,什么时候该换成 StringBuilder 这类更合适的方案。
先搞清楚:C# 字符串是什么
字符串是由零个或多个字符组成的序列,字符内容可以是字母、数字、空格或符号。在 C# 中,字符串使用 string 类型表示,并且它属于引用类型。
字符串怎么声明
日常开发里,最常见的是直接用双引号声明普通字符串;如果内容中包含较多反斜杠,例如文件路径,则可以使用逐字字符串。
// 使用双引号 string greeting = "Hello, World!"; // 使用@符号创建逐字字符串 string path = @"C:UsersPublicDocuments";
逐字字符串也叫 verbatim string,适合保留原始文本形式的内容。它的好处是可以直接写反斜杠,而不需要额外转义。
开发中最常用的字符串操作
理解字符串之后,更关键的是掌握几类高频操作:长度获取、拼接、比较、分割,以及在一段文本中查找指定内容。

如何获取字符串长度
如果你只想知道一段文本有多少个字符,可以直接使用 Length 属性。
string message = "Welcome to the C# tutorial."; int length = message.Length; // length 的值为 29
这类写法适合做输入校验、文本截断前判断,或者简单的长度统计。
字符串拼接:直接用 +,还是用 StringBuilder
少量内容拼接时,直接使用 + 或 += 就够了,代码也更直观。
string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // fullName 的值为 "John Doe"
如果是在循环、批量构造文本或需要多次追加内容的场景中,更适合使用 StringBuilder,这样通常会更高效。
using System.Text;
StringBuilder builder = new StringBuilder();
builder.Append("Hello");
builder.Append(" ");
builder.Append("World");
string result = builder.ToString(); // result 的值为 "Hello World"
字符串比较时要注意什么
判断两个字符串是否相等,可以使用 == 或 !=。如果比较时需要忽略大小写,则可以显式使用 Equals() 并指定比较规则。
string str1 = "hello"; string str2 = "HELLO"; bool isEqualIgnoreCase = str1.Equals(str2, StringComparison.OrdinalIgnoreCase); // isEqualIgnoreCase 的值为 true
这种写法比模糊依赖默认比较方式更清晰,尤其适合用户名、标签名、命令关键字等对大小写不敏感的场景。
如何分割字符串和查找子串
当一段文本内部有固定分隔符时,可以使用 Split() 拆成数组,再逐项处理。
string sentence = "apple,banana,orange";
string[] fruits = sentence.Split(',');
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
如果你的目标是判断某个词是否存在,或者找到它第一次出现的位置,则可以使用 Contains() 和 IndexOf()。
string text = "The quick brown fox jumps over the lazy dog.";
int index = text.IndexOf("fox"); // index 的值为 16
bool contains = text.Contains("dog"); // contains 的值为 true
这两组方法通常会出现在日志分析、关键词匹配、简单文本解析等操作里。
输出更规范:C# 字符串格式化怎么写
很多业务代码并不只是“处理字符串”,而是要把变量、金额、日期等数据按固定格式输出给用户看。这时就需要用到字符串格式化。

插值字符串适合日常拼装文本
在现代 C# 代码里,最常见的写法是字符串插值,也就是 $"..." 这种形式。它可读性高,适合把变量直接嵌入文本中。
int age = 30;
string name = "Alice";
string formattedString = $"My name is {name} and I am {age} years old.";
// formattedString 的值为 "My name is Alice and I am 30 years old."
需要固定模板时可以用 String.Format()
如果你在处理已有模板,或者需要按位置插入多个值,也可以使用 String.Format()。
string result = String.Format("Price: {0:C}", 1234.56); // result 的值为 "Price: ¥1,234.56"
这里的 {0:C} 会把数值按货币格式输出,适合价格、金额等内容展示。
日期和数值可以用自定义格式
如果默认输出格式不符合你的界面或接口要求,可以继续使用自定义格式字符串控制结果。
DateTime now = DateTime.Now;
string customFormat = now.ToString("yyyy-MM-dd HH:mm:ss"); // customFormat 的值为类似 "2023-09-27 14:30:00" 的字符串
这种方式在时间展示、导出文件名、日志时间戳等地方都很常见。
这篇教程适合拿来当什么速查表
如果你刚开始接触 C#,可以先把字符串理解为“文本处理的基础入口”:先会声明,再掌握长度、拼接、比较、分割和查找,最后再补上格式化输出。等到你开始写更复杂的文本构造逻辑时,再优先考虑 StringBuilder 这样的工具,代码会更稳,也更容易维护。













