什么是重复字符?
在字符串中,重复字符指的是在同一字符串中出现两次或以上的字符。这些字符可以是相邻的,也可以是在字符串的不同位置出现。
如何使用 C# 打印字符串中的重复字符?
使用 for 循环
可以使用 for 循环遍历字符串中的每个字符,并计算该字符在字符串中出现的次数。在计算出次数后,可以将该字符和出现次数打印出来。下面是使用 for 循环实现的样例代码:
string str = "Hello World";
for (int i = 0; i < str.Length; i++)
{
int count = 0;
for (int j = 0; j < str.Length; j++)
{
if (str[i] == str[j])
{
count++;
}
}
if (count > 1)
{
Console.WriteLine("字符 {0} 在字符串中出现了 {1} 次", str[i], count);
}
}
在上面的代码中,外层的 for 循环遍历字符串中的每个字符,内层的 for 循环计算该字符在字符串中出现的次数。如果次数大于 1,则打印出该字符和出现次数。
使用 LINQ
使用 LINQ 可以更简洁地实现以上功能。可以使用 GroupBy() 方法分组计算字符串中每个字符的出现次数,并过滤掉出现次数不大于 1 的字符。下面是使用 LINQ 实现的样例代码:
string str = "Hello World";
var result = str.GroupBy(c => c)
.Where(g => g.Count() > 1)
.Select(g => new { Character = g.Key, Count = g.Count() });
foreach (var item in result)
{
Console.WriteLine("字符 {0} 在字符串中出现了 {1} 次", item.Character, item.Count);
}
在上面的代码中,使用 GroupBy() 方法对字符串中的每个字符分组,并使用 Where() 方法过滤出现次数大于 1 的字符。最后使用 Select() 方法将分组后的结果转化为一个包含字符和出现次数的匿名类型。最后使用 foreach 循环遍历结果并打印出字符和出现次数。
使用 Dictionary
使用 Dictionary 可以将字符串中每个字符的出现次数存储在一个键值对集合中。下面是使用 Dictionary 实现的样例代码:
string str = "Hello World";
Dictionary dict = new Dictionary();
foreach (char c in str)
{
if (dict.ContainsKey(c))
{
dict[c]++;
}
else
{
dict.Add(c, 1);
}
}
foreach (var pair in dict)
{
if (pair.Value > 1)
{
Console.WriteLine("字符 {0} 在字符串中出现了 {1} 次", pair.Key, pair.Value);
}
}
在上面的代码中,使用 foreach 循环遍历字符串中的每个字符,并将字符和出现次数存储在 Dictionary 中。最后使用 foreach 循环遍历 Dictionary 中的每个键值对,打印出出现次数大于 1 的字符和出现次数。
总结
以上三种方法都可以用于打印字符串中的重复字符。其中使用 LINQ 可以提供更简洁而优美的实现方式。使用 Dictionary 可以将处理结果存储在一个集合中,方便后续的使用。