c#按数字分割字符串值



字符串值

String value = "11100110100";

我想分割它,如下所示,

111、00 11日0,1,00

我尝试根据数字进行拆分,如下所示:

List<string> result1= value.Split('0').ToList<string>();
List<string> result2= value.Split('1').ToList<string>();

它没有工作,所以,我如何通过分割1和0得到所需的输出(如下所示)?

111
00
11
0
1
00

谢谢。

您可以在从0到1和从1到0的每次更改之间放置一个字符,并在此分割:

string[] result = value.Replace("10", "1,0").Replace("01", "0,1").Split(',');

这是我的扩展方法,没有替换-只解析

public static IEnumerable<string> Group(this string s)
{
    if (s == null) throw new ArgumentNullException("s");
    var index = 0;
    while (index < s.Length)
    {    
        var currentGroupChar = s[index];
        int groupSize = 1;
        while (index + 1 < s.Length && currentGroupChar == s[index + 1])
        {
            groupSize += 1;
            index += 1;
        }
        index += 1;
        yield return new string(currentGroupChar, groupSize);
    }
}

注意:它适用于所有字符分组(不仅仅是0和1)

最新更新