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

求教,一个字符串生成二维数组的方法,急,谢谢!
比如一个字符串“11DX-3L-3JY-4J-5Q”
我需要生成一个二维字符串数组aa[i,2],其中i是由字符串中的“-”数量+1决定的,形式为:
aa[0,0]="11"
aa[0,1]="DX"
aa[1,0]="3"
aa[1,1]="L"
aa[2,0]="3"
aa[2,1]="JY"
aa[3,0]="4"
aa[3,1]="J"
aa[4,0]="5"
aa[4,1]="Q"
我写了一个方法,最后一个aa[4,0]和aa[4,1]都是null,所以求教大家更好的方法!
当然最好是一个方法,因为字符串的格式是固定的,长短不一样,可以是“11DX-3L-3JY”,也可以是“11DX-3L-3JY-4J”,还可以是:“11DX-3L-3JY-4J-5Q-10Z”
望大家不吝赐教,谢谢了


------解决方案--------------------
 string str="11DX-3L-3JY-4J-5Q";
            var array=str.Split('-').Select(t=>Regex.Split(t,"(?is)(?<=\\d)(?=[a-z])")).ToArray();
     
------解决方案--------------------
 string str = "11DX-3L-3JY-4J-5Q";
            string[] arry = str.Split('-');
            string[,] aa = new string[arry.Length, 2];

            for (int i = 0; i < arry.Length; i++)
            {
                int k = 0;
                for (int j = 0; j < arry[i].Length; j++)
                {
                    if (arry[i][j] > '9' 
------解决方案--------------------
 arry[i][j] < '0')
                        break;
                    k++;
                }
                aa[i, 0] = arry[i].Substring(0, k);
                aa[i, 1] = arry[i].Substring(k);
            }

------解决方案--------------------

 string strsource = "11DX-3L-3JY-4J-5Q";
           var arr=strsource.Split('-');
           string[,] result = new string[arr.Count(), 2];
           for (int k=0;k< arr.Length;k++)
            {
                result[k, 0] = Regex.Split(arr[k], "(?is)(?<=\\d)(?=[a-z])")[0];
                result[k, 1] = Regex.Split(arr[k], "(?is)(?<=\\d)(?=[a-z])")[1];