code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace AppTest { /// <summary> /// /// </summary> class Program { #region method one //private static SortedDictionary<char, int> sd = new SortedDictionary<char, int>(); //static void Main(string[] args) //{ // string str = "1232143546534135164161"; // foreach (char item in str) // { // Check(item); // } // char maxChar = Char.MinValue; // int maxValue = 0; // foreach (KeyValuePair<char,int> item in sd) // { // Console.WriteLine("Dictionary has a key :{0} and Value:{1}",item.Key,item.Value); // if (item.Value > maxValue) // { // maxValue = item.Value; // maxChar = item.Key; // } // } // Console.WriteLine("Max char is {0},times is {1}.",maxChar,maxValue); // Console.ReadLine(); //} //private static void Check(char c) //{ // if (sd.ContainsKey(c)) // { // sd[c]++; // } // else // { // sd.Add(c,1); // } //} #endregion #region method two //static void Main(string[] args) //{ // List<char> list = new List<char>(); // string s = "1232143546534135164161 "; // list.AddRange(s.ToCharArray()); // list.Sort(); // char c = ' '; // int temp = 1; // char maxChar = ' '; // int maxCount = 0; // for (int i = 0; i < list.Count; i++) // { // if (i > 0) // { // if (list[i] == c) // temp++; // else // { // temp = 1; // } // } // if (temp > maxCount) // { // maxCount = temp; // maxChar = list[i]; // } // c = list[i]; // } // Console.WriteLine("字符 "+maxChar.ToString() + " 具有 " +maxCount.ToString()); //} #endregion #region method three //static void Main(string[] args) //{ // string ss = "1232143546534135164161"; // char[] c = ss.ToCharArray(); // ArrayList al1 = new ArrayList(); // ArrayList al2 = new ArrayList(); // int i = 0; // int k = 0; // foreach (char item in c) // { // if (!al1.Contains(item)) // { // al1.Add(item); // al2.Add(1); // } // else // { // al2.Insert(al1.IndexOf(item),Convert.ToInt32(al2[al1.IndexOf(item)].ToString()) + 1); // al2.RemoveAt(al1.IndexOf(item) + 1); // } // } // for (int j = 0; j < al2.Count; j++) // { // if(Convert.ToInt32(al2[j].ToString()) > i) // { // i = Convert.ToInt32(al2[j].ToString()); // k = j; // } // } // string s = "字符 " + al1[k].ToString() + " 出现 " + i.ToString() + "次."; // Console.WriteLine(string.Format(" {0}", s)); //} #endregion #region method four static void Main(string[] args) { string s = "1232143546534135164161"; StringBuilder sb = new StringBuilder(s); List<int> charCount = new List<int>(); List<char> lchar = new List<char>(); int i,j; i = 0; j = 1; while (sb.Length > 0 && i < sb.Length) { charCount.Add(1); lchar.Add(sb[0]); while (sb.Length > 0 && j < sb.Length) { if (sb[0] == sb[j]) { charCount[i]++; } j++; } sb.Replace(sb[0].ToString() ,""); i++; j = 1; } for (int k = 0; k < charCount.ToArray().Length; k ++) { Console.WriteLine(string.Format(" {0,4} {1} " , lchar[k].ToString(), charCount[k])); } Console.ReadLine(); } #endregion } }