遍历字符串
将字符串视为字符序列。
遍历字符串 是 CoddyKit 上的免费 C# Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。
字符串是字符序列
string 是按顺序排列的 char 值序列。
这意味着您可以遍历字符串,一次查看一个字符。迭代是检查、计数或转换文本中字符的方式。
string text = "Hello";
// 'H', 'e', 'l', 'l', 'o'长度属性
每个 string 都有一个 Length 属性,用于告诉您其中包含多少个字符。
您将使用 Length 控制循环,并确定最后一个有效索引,该索引始终是 Length - 1。
class Program
{
static void Main()
{
string text = "Hello";
System.Console.WriteLine(text.Length);
}
}使用 foreach 循环
访问每个字符的最简单方式是使用 foreach 循环。
每次迭代它都会为您提供一个 char,无需使用索引。当您不需要知道字符位置时,这是最简洁的选择。
class Program
{
static void Main()
{
string text = "Hi!";
foreach (char c in text)
System.Console.WriteLine(c);
}
}使用 for 和索引循环
使用 for 循环可以获取索引,这在位置很重要时是必需的。
让索引从 0 递增到 Length - 1,然后使用 text[i] 读取每个字符。
class Program
{
static void Main()
{
string text = "Hi!";
for (int i = 0; i < text.Length; i++)
System.Console.WriteLine(text[i]);
}
}索引从零开始
字符的编号从 0 开始,因此第一个字符位于索引 0 处。
对于 "Code",text[0] 是 'C',而 text[3] 是 'e'。读取过大的索引会引发错误。
string text = "Code";
char first = text[0]; // 'C'
char last = text[3]; // 'e'统计特定字符
通过迭代,您可以统计符合某个条件的字符。
这个程序通过将每个字符与一个小集合进行比较,统计单词中元音字母的数量。
class Program
{
static void Main()
{
string text = "banana";
int count = 0;
foreach (char c in text)
if (c == 'a') count++;
System.Console.WriteLine(count);
}
}结合 char 辅助方法
在循环中,您可以调用之前学过的 char 辅助方法。
例如,使用 char.IsDigit 测试每个字符,只统计字符串中的数字字符。
class Program
{
static void Main()
{
string text = "a1b2c3";
int digits = 0;
foreach (char c in text)
if (char.IsDigit(c)) digits++;
System.Console.WriteLine(digits);
}
}构建转换后的结果
您可以在迭代过程中逐步收集新的结果。
这个循环读取每个字符,使用 char.ToUpper 将其转换为大写,然后输出它。由于字符串不可变,原始字符串不会被更改。
class Program
{
static void Main()
{
string text = "loud";
foreach (char c in text)
System.Console.Write(char.ToUpper(c));
}
}字符串不可变
您不能使用 text[0] = 'X' 就地更改字符;这会导致编译错误。
字符串是不可变的,这意味着其中的字符永远不会改变。要得到不同的文本,您需要创建一个新字符串,而不是编辑旧字符串。
string text = "cat";
// text[0] = 'b'; // not allowed通过迭代反转
通过从最后一个索引向下迭代到 0,您可以按相反的顺序输出字符。
将索引从 Length - 1 开始,并不断递减,直到它达到 0。
class Program
{
static void Main()
{
string text = "abc";
for (int i = text.Length - 1; i >= 0; i--)
System.Console.Write(text[i]);
}
}foreach 与 for
当您只需要每个字符而不需要其位置时,请使用 foreach。
当您需要索引、想要跳过字符,或想按自定义顺序(例如反向顺序)循环时,请使用 for 循环。两者都会访问相同的字符。
快速检查
测试您对遍历字符串的理解。
回顾
string 是一种可以遍历的字符序列。
使用 foreach 进行简单迭代;当位置很重要时,使用带索引的 for 循环。Length 属性提供字符数量,索引从 0 开始,而字符串不可变,因此转换文本时始终会创建一个新字符串。
常见问题解答
「遍历字符串」课时是免费的吗?
是的 — 「遍历字符串」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。
「遍历字符串」这节课中我会学到什么?
将字符串视为字符序列。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C# Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「遍历字符串」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C# Academy 课中编写并运行代码吗?
能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。