📌  相关文章
📜  c# + 字符串中的最大字符频率 - C# 代码示例

📅  最后修改于: 2022-03-11 14:49:04.161000             🧑  作者: Mango

代码示例1
//return the character that appears the maximum number of times in the string
//contain only ASCII characters, from the ranges ('a'-'z','A'-'Z','0'-'9'), and case sensitive
//If there is a tie in the maximum number of times a character appears in the string, return the character that appears first in the string 

public static void Main(string[] args)
{
  CharCounter("This is a neat day for Things about Coding9999");        
}
public static void CharCounter(string str) 
{
    string strValidated = "";
    str = str.Replace(" ", "");     //Remove all spaces

  //Validate alpha-numberic only
    if (Regex.IsMatch(str, @"^[A-Za-z0-9]+$")) strValidated = str;
    else throw new FormatException("--------> Only Apha Numeric values allowed");

    Dictionary dict = new Dictionary();

    foreach (char c in strValidated)    //Create Dictionary
    {
      if (dict.ContainsKey(c)) dict[c] = dict[c] + 1;
      else dict.Add(c, 1);
    }
  //Sort(K,V) by Highest Values
    var ordered = dict.OrderByDescending(x => x.Value)
      .ToDictionary(d => d.Key, d => d.Value);

  //var singleEntryDict = ordered.First();  
    var result = ordered.Take(1)
      .ToDictionary(d => d.Key, d => d.Value);

    foreach (var item in result.Keys)
    {
      Console.WriteLine($"Key= {item} : Value= {result[item]}");
    }
            
}