首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#编程,如果从一个字符串中拿到不重复的字母解决思路

2012-04-24 
C#编程,如果从一个字符串中拿到不重复的字母比如说一个字符串里面是“ssyyaillxx”如何将“AI”从这个字符串中

C#编程,如果从一个字符串中拿到不重复的字母
比如说一个字符串里面是“ssyyaillxx”如何将“AI”从这个字符串中提取出来?小弟新手望指教,希望能有CODE

[解决办法]

C# code
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();
[解决办法]
C# code
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
[解决办法]
C# code
string str = @"dgsagsdretdddtetwq";char[] chars = str.ToList<char>().Distinct().ToArray<char>();str = new string(chars);
[解决办法]
linq代码实现确实要优雅很多 不过你没接触过我这边写了段比较傻的代码 不知道你能不能看懂 主要就是循环然后查看当前字符和前后字符是否相等
C# code
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();        } 

热点排行