日期:2014-05-18 浏览次数:20978 次
declare @ddd nvarchar(2000) declare @ll int set @ddd='alsdk 0poqwer rkj kerie qwel; wejw '; set @ddd=rtrim(ltrim(@ddd));--去空格 set @ddd=replace(@ddd,' ','');--去空格 set @ll=len(@ddd);--求总长度 select @ll select len(@ddd)-len(replace(@ddd,'a',''))--a的个数 select len(@ddd)-len(replace(@ddd,'w',''))--w的个数
------解决方案--------------------
可以做一个Hashtable,key为字符,value为出现的次数
遍历字符串
碰到不存在于hashtable中的字符,加到hashtable中
遇到已经存在于hashtable中的,将Value加1即可
最后找最大value对应的字符
------解决方案--------------------
你要是在程序里处理
char[] chars=''alsdk 0poqwer rkj kerie qwel; wejw ''.toCharArray();
------解决方案--------------------
蹭点分
Dictionary<char, int> counter = new Dictionary<char, int>(); string s = "alsdk 0poqwer rkj kerie qwel; wejw "; char max = s[0]; s = s.ToLower(); // 全小写 foreach (char c in s) { if (!char.IsLetter(c)) continue; // 非字母 if (counter.ContainsKey(c)) counter[c]++; else counter.Add(c, 1); if (counter[max] < counter[c]) max = c; } Console.WriteLine("出现最多的字符是:'{0}' 共出现:{1}次", max, counter[max]);
------解决方案--------------------
次序颠倒一下,变小写是后面加的。。。
s = s.ToLower(); // 全小写 char max = s[0];
------解决方案--------------------
string s = "alsdk 0poqwer rkj kerie qwel; wejw ";
Dictionary<string, int> d = new Dictionary<string, int>();
//List<int> number=new List<int>();
for (int i = 0; i <= s.Length; i++)
{
//number.Add(s.Split(new char[] { s[0]}).Length-1);
d["Char:"+s[0]] = s.Split(new char[] { s[0]}).Length-1;
s = s.Replace(s[0].ToString(),"");
i = 0;
}
//排序...自己写吧。