c# 如何判断字符串中相同字符串的个数 (相同字符在字符串中出现的次数)
来源:互联网 发布:如何预防网络成瘾 编辑:程序博客网 时间:2024/05/17 06:01
方法1.自定义类
class CharNum { private char c; private int num; public char C { get { return c; } } public int Num { get { return num; } set { num = value; } } public CharNum(char ch) { this.c = ch; this.num = 1; } }static void Main(string[] args) { /* */string s = "abbbcgg"; IList<char> alist = new List<char>(); for (int i = 0; i < s.Length; i++) { if (!alist.Contains(s[i])) alist.Add(s[i]); } char[] c = (char[])alist.ToArray(); int length = 0; CharNum[] data = new CharNum[c.Length]; for (int j = 0; j < s.Length; j++) { CharNum cn = new CharNum(s[j]); bool plus = false; if (length == 0) { data[length] = cn; length++; } else { for (int k = 0; k < length; k++) { if (data[k].C == cn.C) { data[k].Num++; plus = true; break; } } if (!plus) { data[length] = cn; length++; } } } for (int i = 0; i < data.Length; i++) { Console.WriteLine("{0}:{1}",data[i].C.ToString(), data[i].Num.ToString()); } Console.ReadKey();}
方法2:键值集合 Dictionary<char, int>
Dictionary<char, int> dic = new Dictionary<char, int>(); String s = "aaabbs"; char[] chardata = s.ToCharArray(); foreach (char c in chardata) { if (!dic.ContainsKey(c)) { dic.Add(c, 1); } else { dic[c] = dic[c] + 1; } } foreach (KeyValuePair<char, int> item in dic) { Console.WriteLine("{0}出现{1}次", item.Key, item.Value); } Console.ReadLine();
方法3:哈希表
Hashtable ht = new Hashtable(); string sr = "aaabbcddddd"; char[] cr = sr.ToCharArray(); foreach (char ch in cr) { if (ht.ContainsKey(ch)) { int i = (int)ht[ch]; ht.Remove(ch); ht.Add(ch, ++i); } else ht.Add(ch, 1); } foreach (DictionaryEntry dicEntry in ht) { Console.WriteLine("{0}出现{1}次", dicEntry.Key, dicEntry.Value); } ArrayList alist = new ArrayList(ht.Values); alist.Sort(); object o = (object)alist[alist.Count - 1]; foreach (DictionaryEntry dicEntry in ht) { if (dicEntry.Value == o) { string str = dicEntry.Key.ToString(); Console.WriteLine("出现次数最多的字符:{0},共{1}次", str, o.ToString()); break; } } Console.ReadLine();
方法4:LINQ
string s = "aaabccccef"; char[] c = s.ToCharArray(); var cc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).ToList(); for (int i = 0; i < cc.Count; i++) { Console.WriteLine("{0}\t{1}", cc[i].Key.ToString(), cc[i].Count().ToString()); } var ccc = c.GroupBy(e => e).OrderByDescending(e => e.Count()).First().ToList(); Console.WriteLine("{0}出现{1}次!", ccc[0].ToString(), ccc.Count().ToString()); Console.ReadKey();
0 0
- c# 如何判断字符串中相同字符串的个数 (相同字符在字符串中出现的次数)
- 如何获取字符串中相同字符出现的次数
- 查找字符串中,相同字符出现的次数!
- 统计字符串中相同字符的个数
- c#一个字符串中如何去掉相同的字符
- 字符串中出现的相同字母的个数
- 查找字符串中相同的最大字符和个数
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- 递归算法查找字符串中相同字符连续出现的最大次数
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- c# 判断字符串在一段文字中出现的次数
- 字符串匹配算法实现(两个字符串中含有的字符和个数都相同)
- 判断字符串中是否有相同的字符
- 如何判断一个字符在一个字符串中出现的次数
- 判断两字符串相同不同的字符个数
- LabView清除字符串中相同的字符
- 删除字符串中相同的字符
- python2.7中文乱码解决方案
- wifi共享精灵 设置热点后 电脑上不了网
- Visual Basic.net ArrayList 用法
- C当中关于sizeof(struct)和sizeof(union)
- Spark 常见问题小结
- c# 如何判断字符串中相同字符串的个数 (相同字符在字符串中出现的次数)
- 模拟赛 计算(时间限制:1s;空间限制 64MB)
- 源代码安装samba服务器
- 简单的答题网页
- poj 1692 Crossed Matchings DP
- maven的学习系列(二)—maven的目录结构
- 区间选点
- 软件的23种设计模式
- oracle数据库