In this article, I will discuss how to count the number of occurrences of a character in a string in C# in different ways. This detailed article will cover the following topics,
- Introduction
- Different ways to count character occurrence in a string in C#
- Conclusion
Character Occurrence in a String in C#' is one of the most frequently asked questions in interviews. This tutorial will show you different ways to count the number of occurrences of a character in a string in C#.
Different ways to count character occurrence in a string in C#
Method. Using Loop to count character occurrence in a String in C#
In the following program, we take a string from the user, remove spaces from it, and then use a for loop to count the occurrence of each character in the string. Let's see.
internal class UsingLoop
{
static void Main(string[] args)
{
Console.Write("Enter the String: ");
string str = Console.ReadLine();
str = str.Replace(" ", string.Empty); //Remove the empty spaces from the message
while (str.Length > 0)
{
int count = 0;
for (int i = 0; i < str.Length; i++)
{
if (str[0] == str[i])
{
count++;
}
}
Console.WriteLine($"Character '{str[0]}' appears {count} time(s) ");
str = str.Replace(str[0].ToString(), string.Empty);
}
Console.ReadLine();
}
}
Output
Method 2. Using a Dictionary to count the number of characters of a string in C#
In the following program, we take a string from the user, and then use a Dictionary to count the occurrence of each character in the string. Let's see.
internal class UsingDictionary
{
static void Main(string[] args)
{
Console.Write("Enter the string: ");
string message = Console.ReadLine();
message = message.ToLower(); // Optional: Convert the string to lowercase to ignore case sensitivity
Dictionary<char, int> dict = new Dictionary<char, int>();
foreach (char ch in message.Replace(" ", string.Empty))
{
if (dict.ContainsKey(ch))
{
dict[ch] = dict[ch] + 1;
}
else
{
dict.Add(ch, 1);
}
}
foreach (var item in dict)
{
Console.WriteLine($"Character '{item.Key}' appears {item.Value} time(s)");
}
Console.ReadLine();
}
}
Output
Method 3. Using Linq Group By to count the number of characters of a string in C#
In the following program, we take a string from the user, and then use the LINQ Group By method to count the occurrence of each character in the string. Let's see.
internal class UsingLinqGroupBy
{
static void Main(string[] args)
{
Console.Write("Enter the string: ");
string str = Console.ReadLine();
str = str.ToLower(); // Optional: Convert the string to lowercase to ignore case sensitivity
Dictionary<char, int> dict = str.Replace(" ", string.Empty)
.GroupBy(ch => ch)
.ToDictionary(gb => gb.Key, gb => gb.Count());
foreach (var item in dict.Keys)
{
Console.WriteLine($"Character '{item}' appears {dict[item]} time(s)");
}
Console.ReadLine();
}
}
Output
See you in the next article, till then, take care and be happy learning.
You may also visit my other article,
You can connect with me @
Conclusion
In this article, we have discussed different ways to count the character occurrence of a string in C# with examples.
I hope you enjoyed this blog. Follow C# Corner to learn more new and amazing things about C#.
Thanks for reading.