日期:2014-05-17  浏览次数:20759 次

字符串的拆分。逻辑思维高人来看看
我有一段字符串,里面用","隔开了,但是2个逗号之间的长度不同,假设里面有10W条数据。我想每次都获取200个,我怎么获取第200个“,”的位置?IndexOf()是获取第一个匹配的元素位置哦,要是可以设置第n个匹配的元素位置就爽歪歪了。string str="a,g,df,ww,r,ehg,er,gh,wrg,wre,fgs,df,wgbh,tjh,r,h,rew,hte,h,";字符串格式类似与这个
String .Net C#

------解决方案--------------------
其实用Split就可以实现了,你想,一个,分隔以后的数组长度就是2,也就是说数组长度是逗号数+1,所以第200个,就是数组第200个元素,由于长度有限,我这里就用5代替200了:
            string str = "a,g,df,ww,r,ehg,er,gh,wrg,wre,fgs,df,wgbh,tjh,r,h,rew,hte,h,saf";
            int index = 5;
            string[] array = str.Split(',');
            string[] temp = new string[index];
            Array.Copy(array, 0, temp, 0, index);
            Console.WriteLine(string.Join(",", temp));


------解决方案--------------------
用IndexOf也可以:

            string str = "a,g,df,ww,r,ehg,er,gh,wrg,wre,fgs,df,wgbh,tjh,r,h,rew,hte,h,saf";
            int sep = 5;
            int index = -1, count = 0;
            while (count != sep)
            {
                index = str.IndexOf(',', index + 1);
                if (index != -1)
                    count++;
            }
            Console.WriteLine(str.Substring(0, index));