字符串是写代码时碰得最多的一种数据。C# 的 string 自带一大批实用方法,这篇挑日常出场率最高的几个:Split、IndexOf、Substring、Replace、Trim 和 Join,每个都配可直接运行的示例,学会就能处理大部分文本了。

Split:按分隔符拆成数组

string line = "apple,banana,cherry";
string[] fruits = line.Split(',');
Console.WriteLine(fruits[1]);      // 输出:banana
Console.WriteLine(fruits.Length);  // 输出:3

要限制最多拆成几段,传第二个参数:

string record = "张三,男,18,喜欢打篮球";
string[] parts = record.Split(',', 2);
Console.WriteLine(parts[1]);       // 输出:男,18,喜欢打篮球

处理「第一列是名字、后面内容里也有逗号」这类格式时,这个重载特别好用。

IndexOf + Substring:先找位置,再截取

string url = "https://sherry.cool";
int pos = url.IndexOf("://");
Console.WriteLine(pos);                      // 输出:5
Console.WriteLine(url.Substring(0, pos));    // 输出:https
Console.WriteLine(url.Substring(pos + 3));   // 输出:sherry.cool

IndexOf 找不到时返回 -1,所以截取前先判断一下更稳:

if (pos >= 0)
{
    Console.WriteLine(url.Substring(pos + 3));
}

Replace:整串替换

string date = "2026-09-30";
Console.WriteLine(date.Replace('-', '/'));   // 输出:2026/09/30

注意 string 的方法都不会改动原字符串,而是返回新字符串——string 是不可变的。

Trim:去掉两端空白

处理用户输入几乎必用:

string input = "  hello  ";
Console.WriteLine("[" + input.Trim() + "]");       // 输出:[hello]
Console.WriteLine("[" + input.TrimStart() + "]");  // 输出:[hello  ]

Join:把数组拼回字符串

Split 的反操作是 string.Join:

string[] tags = { "python", "css", "csharp" };
Console.WriteLine(string.Join("、", tags));
// 输出:python、css、csharp

判空:IsNullOrEmpty 与 IsNullOrWhiteSpace

string name = "   ";
Console.WriteLine(string.IsNullOrEmpty(name));       // 输出:False
Console.WriteLine(string.IsNullOrWhiteSpace(name));  // 输出:True

IsNullOrWhiteSpace 连「全是空格」也能拦下来,校验表单输入时用它更保险。

小结

  • Split 拆数组、Join 拼字符串,是一对反操作
  • IndexOf 找位置(找不到返回 -1),Substring 截取
  • Replace 替换、Trim 去空白,都返回新字符串
  • string 不可变,循环里频繁拼接要换 StringBuilder
  • 判空优先用 IsNullOrWhiteSpace

下一篇可以聊聊 StringBuilder,看看到底为什么要用它来做拼接。