日期:2014-05-18 浏览次数:20758 次
var str = "ssyyaillxx"; var filter = str.ToCharArray().GroupBy(s => s).Where(g => g.Count() == 1).Select(g => g.Key); var result = string.Join("", filter.ToArray()); Console.WriteLine(result); Console.Read();
------解决方案--------------------
string test_str = "ssyyaillxx"; test_str=string.Join("",test_str.ToCharArray().GroupBy(a => a).Where(a => a.Count() == 1).Select(a=>a.Key).ToArray());//ai
------解决方案--------------------
string str = @"dgsagsdretdddtetwq"; char[] chars = str.ToList<char>().Distinct().ToArray<char>(); str = new string(chars);
------解决方案--------------------
linq代码实现确实要优雅很多 不过你没接触过我这边写了段比较傻的代码 不知道你能不能看懂 主要就是循环然后查看当前字符和前后字符是否相等
static void Main(string[] args) { var testString = "aaabbbcdefffkffff"; var charArray = testString.ToCharArray(); var length = charArray.Length; StringBuilder sb = new StringBuilder(); List<string> returnValue = new List<string>(); for (int i = 1; i < length; i++) { var current = charArray[i]; if (i < length-1) { if (current == charArray[i + 1] || current == charArray[i - 1]) { if (sb.Length != 0) { returnValue.Add(sb.ToString()); sb.Clear(); } continue; } else { sb.Append(current); } } else { if (current == charArray[i - 1]) { continue;//检测最后一个字符是否有重复 } else { sb.Append(current); } } } if (sb.Length != 0) { returnValue.Add(sb.ToString()); } foreach (var temp in returnValue) { Console.WriteLine(temp); } Console.ReadLine(); }