已知string a="1,2,3,4,...56"
要求得到一个string[] b 
其中b[0]="1,2,3,...10";
    b[1]="11,12,13,...20" ;
    ...
    b[4]="41,42,...50";
    b[5]="51,52,...56";
//总之将a里面以逗号分开的值10个10个的分开,最后组成一个sting[]private string[] getAnswer(string a)
{
   ...
   retrun b;
}
请教这个算法该怎么写,多谢!!!!!!!!!!!

解决方案 »

  1.   

    string[] list=a.Split(",");
    string[] b;
    for(int i=0; i <list.Length; i++)
    {
      if((list[i]%10!=0 || i==list.Length-1)
    {
     b[i/10]+= list[i]+",";
    }
    else
    {
    b[i/10]+= list[i];
    }}
      

  2.   

    string a="1,2,3,4,...56";
    //
    private string[] getAnswer(string a)
    {
    string[] c=a.split(new char[]{,});
    int l=c.length;
    int ll=l/10;
    string[] b;
    for (int i=0;i<ll;i++){
     for (int j=0;j<10;j++){
      b[i]+=c[i*10+j];
     }
    }
    return b;
    }
      

  3.   

    private string[] getAnswer(string a)
            {
                string[] arr = a.Split( ',');
                int group = (arr.Length + 9) / 10;
                string[] result = new string[group];
                for (int i = 0; i < group; i++)
                {
                    string s = "";
                    for (int j = 0; j < 10; j++)
                    {
                        int index = i * 10 + j;
                        if (index >= arr.Length)
                            break;
                        s += arr[index] + ",";
                    }
                    s = s.TrimEnd(',');
                    result[i] = s;
                }
                return result;
            }
      

  4.   

    1,2,3,4,5,6,7,8,9,10
    11,12,13,14,15,16,17,18,19,20
    21,22,23,24,25,26,27,28,29,30
    31,32,33,34,35,36,37,38,39,40
    41,42,43,44,45,46,47,48,49,50
    51,52,53,54,55,56
    ----
    string a = string.Empty;
    for (int i = 1; i <= 56; i++)
    {
        a += "," + i.ToString();
    }
    a = a.Remove(0, 1); // 删除第一个","
    int count = 0;
    string t = string.Empty;
    foreach (string s in a.Split(','))
    {
        count++;
        if (count % 10 == 0)
        {
            t += "," + s;
            t = t.Remove(0, 1); // 删除第一个","
            Console.WriteLine(t);
            t = string.Empty;
        }
        else t += "," + s;
    }
    if (t != string.Empty)
    {
        t = t.Remove(0, 1); // 删除第一个","
        Console.WriteLine(t);
    }
      

  5.   

    string a="1,2,3,4,...56";
    //
    private string[] getAnswer(string a)
    {
    string[] c=a.split(new char[]{','});
    int l=c.length;
    int ll=l/10;
    string[] b;
    for (int i=0;i<ll;i++){
     for (int j=0;j<10;j++){
      b[i]+=c[i*10+j]+",";
     }
      b[i]=b[i].substring(0,b[i].length-1);
    }
    return b;
    }
      

  6.   

    本来就是 固定值 何必搞循环 浪费b[0]={1,2,3,4,5,6,7,8,9,10}
    b[1]={11,12,13,14,15,16,17,18,19,20}
    b[2]={21,22,23,24,25,26,27,28,29,30}
    b[3]={31,32,33,34,35,36,37,38,39,40}
    b[4]={41,42,43,44,45,46,47,48,49,50}
    b[5]={51,52,53,54,55,56}
      

  7.   

    发现我写的方法最失败...
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;namespace ConsoleApplication1
    {
        public class Class1
        {
            private int numsize = 10;
            private int number = 0;
            public Class1() { }
            public Class1(int numsize)
            {
                this.numsize = numsize;
            }
            public int Numsize
            {
                get { return numsize; }
                set { numsize = value; }
            }
            public string[]  GetAnswer(string inputStr)
            { 
                string[] result = new string[GetNeedStringArrayNumber(GetNeedStringArrayELement(inputStr))]; //存放字符串数组
                int index = 0;  //当前字符串数组下标
                int cursor = 0; //数字统计
                for (int i = 0; i < inputStr.Length; i++)
                {
                    if (!isComma(inputStr[i]))
                        SetNum(inputStr[i]);
                    else
                    {
                        ++cursor;
                        if (0 != cursor % numsize)
                        {
                            result[index] += number;
                            result[index] += ",";
                        }
                        else
                        {
                            result[index] += number;
                            ++index;
                        }
                        number = 0;
                    }
                }
                result[index] += number;
                return result;
               
            }
            /// <summary>
            /// 获得真正字符串里存在的数字
            /// </summary>
            /// <param name="srcStr"></param>
            /// <returns></returns>
            private int GetNeedStringArrayELement(string srcStr)
            {
                int count = 0;
                for (int i = 0; i < srcStr.Length; i++)
                {
                    if (isComma(srcStr[i]))
                        ++count;
                }
                return ++count;
            }
            /// <summary>
            /// 获得需要字符串数组的数量
            /// </summary>
            /// <param name="count"></param>
            /// <returns></returns>
            private int GetNeedStringArrayNumber(int count)
            {
                return count % numsize != 0 ? (count / numsize + 1) : (count / numsize);
            }
            /// <summary>
            /// 获得将字符串转换完毕后的数字
            /// </summary>
            /// <param name="c"></param>
            private void SetNum(int c)
            {
                number = number * 10 + ConvertToInt(c);
            }
            /// <summary>
            /// 转换字符为数字
            /// </summary>
            /// <param name="c"></param>
            /// <returns></returns>
            private int ConvertToInt(int c)
            {
                if (48 <= c && c <= 57)
                    return c - 48;
                throw new Exception();
            }
            /// <summary>
            /// 判断是否是逗号
            /// </summary>
            /// <param name="c"></param>
            /// <returns></returns>
            private bool isComma(char c)
            {
                return c == ',' ? true : false;
            }
        }
    }