解决方案 »

  1.   

      static void Main(string[] args)
            {
                string str = "aabcdddefggg";
                var matches = Regex.Matches(str, @"([a-zA-Z])\1*");
                foreach (Match item in matches)
                {
                    Console.WriteLine(item.Value);
                }
                Console.ReadKey();
            }
      

  2.   


    你的代码太复杂了。应该简化一下public static IEnumerable<string> GetSubStringArray(string s)
    {
        var array = new List<char>();
        foreach(var c in s)
        {
            if (array.Count != 0 && c != array[array.Count - 1])
            {
                yield return new string(array.ToArray());
                array.Clear();
            }
            array.Add(c);
        }
        yield return new string(array.ToArray());
    }
      

  3.   

    private static string[] GetSubStringArray(string inputString)
    {
        List<string> result = new List<string>() { "" };
        inputString.Aggregate(inputString[0], (a, b) => { if (a == b) result[result.Count - 1] += b.ToString(); else result.Add(b.ToString()); return b; });
        return result.ToArray();
    }
      

  4.   


            private static IEnumerable<string> getSubStringArray(string inputString)
            {
                return from c in inputString
                       group c by c into g
                       select string.Join("", g.ToArray());
            }