我这里有一个词“angoora” 'a' 和 'o' 出现 2 次 如果用户输入是 2 那么输出应该是 "ngr"函数应该删除 a 和 o 因为它在一个字符串中出现了 2 次。如果用户输入 3 那么输出应该是“angoora”,因为没有字符出现 3 次。
我正在这样做,但我认为这不是正确的方法,因为它没有引导我实现我的目标,我们将不胜感激任何帮助。
public static SortedDictionary<char, int> Count(string stringToCount)
{
SortedDictionary<char, int> characterCount = new SortedDictionary<char, int>();
foreach (var character in stringToCount)
{
int counter = 0;
characterCount.TryGetValue(character, out counter);
characterCount[character] = counter + 1;
}
return characterCount;
}
最佳答案
您可以使用 LINQs GroupBy 来查找每个字符出现的次数。然后删除那些出现次数你想要的。像这样
public static string RemoveCharactersThatOccurNumberOfTimes(string s, int numberOfOccurances)
{
var charactersToBeRemoved = s.GroupBy(c => c).Where(g => g.Count() == numberOfOccurances).Select(g => g.Key);
return String.Join("", s.Where(c => !charactersToBeRemoved.Contains(c)));
}
关于c# - 接受字符串输入并删除出现一定次数的所有字符的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593197/