关于C#中遍历字符串中的每个字符的方法

Posted 杭者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C#中遍历字符串中的每个字符的方法相关的知识,希望对你有一定的参考价值。

解决方案

C#提供了两个方法用于遍历字符串。

1.第一个方法是foreach循环,这个方法快速且容易,但是与第二个方法相比它不太灵活。其使用方法如下:

string testStr = "abc123";
foreach (char c in testStr)
{
  Console.WriteLine(c.ToString());
}

 

2.第二个方法使用for循环而不是foreach循环来遍历字符串。例如:

string testStr = "abc123";
for (int counter = 0; counter < testStr.Length; counter++)
{
   Console.WriteLine(testStr[counter]);
}

 

 

讨论

foreach循环更简单,因此不太容易出错,但其灵活性较差。与之相反,for循环稍微复杂一点,但其灵活性较高。

for循环这种方法使用字符串变量testStr的索引器来获取通过counter循环索引所指示位置上的字符。在使用这种循环机制时,一定要小心不要越出字符串数组的边界。

for循环很灵活,足以改变遍历字符串中的字符的方式。例如,通过简单改变for循环的初始化器和条件表达式可以快速修改循环,使之开始和结束于字符串中的特定位置。

通过修改迭代器表达式使counter变量的递增数量大于1,可以跳过一些字符。还可以修改for循环表达式以逆序遍历字符串,如下所示:

for (int counter = testStr.Length - 1; counter >= 0; counter--)
{
    Console.WriteLine(testStr[counter].ToString());
} 

 

 

注意: 

编译器会最恰当地使用foreach循环来遍历一个向量数组 -- 它开始于0,并且只有一维。把foreach循环转换为另一种循环类型(比如for循环)可能不会导致任何显著的性能改进。

所有这些方法都是使用/optimize编译器选项编译的。使用/optimize标志通常将使得编译过的代码尺寸更小,而不会使之变得更快。代码越小,从磁盘加载它的速度就会更快,并且实时编译它的速度也会更快。

以上是关于关于C#中遍历字符串中的每个字符的方法的主要内容,如果未能解决你的问题,请参考以下文章

比较 C# 中的字符串片段并从集合中删除项目

使用 C# 检测破坏性 SQL 查询

如何通过C#中的特定片段从句子中提取整个单词?

c# foreach(对象中的属性)...有没有一种简单的方法可以做到这一点?

Java 求解划分字母区间

C#循环遍历列表以查找字符数