2.20. Iterating Over Each Character in a String
Problem
You need to iterate over each character in a string efficiently in order to examine or process each character.
Solution
C# provides two
methods for iterating strings. The first is by using a
foreach loop, as follows:
string testStr = "abc123";
foreach (char c in testStr)
{
Console.WriteLine(c.ToString( ));
}
This method is quick and easy.
Unfortunately, it is somewhat less flexible than the second method,
which uses the for loop instead of a
foreach loop to iterate over the string. For
example:
string testStr = "abc123";
for (int counter = 0; counter < testStr.Length; counter++)
{
Console.WriteLine(testStr[counter].ToString( ));
}Discussion
The foreach loop is simpler and thus less
error-prone, but it lacks flexibility. In contrast, the
for loop is slightly more complex, but it makes up
for that in flexibility.
The for loop method uses the indexer of the string
variable testStr to get the character located at
the position indicated by the counter loop index.
Care must be taken not to run over the bounds of the string array
when using this type of looping mechanism.
A for loop is flexible enough to change how
looping over characters in a string is performed. For example, the
loop could be quickly modified to start and end at a specific point
in the string by simply changing the
initializer and
conditional expressions of the
for loop. Characters can be skipped by changing
the iterator expression to increment the
counter variable by ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access