定义:
string str = "12345678900987654321556677889912345";现在我想按10个字符长度来分割字符,最后不满10个字符的也单独成一个元素,即转换成:string[] strarr = {"1234567890","0987654321","5566778899","12345"};请给出str->strarr的具体转换代码

解决方案 »

  1.   

    int newLength=(int)Math.Ceil(str.length/10.0)
    string[] newstr=new string[newLength];
    int j=0;
    for(int i=0; i<str.length; i=i+10)
    {
       newstr[j]=str.substring(i,10);
       j++; 
    }
      

  2.   

    应该是这样:
    int newLength=(int)Math.Ceil(str.length/10.0) 
    string[] newstr=new string[newLength]; 
    int j=0; 
    for(int i=0; i <str.length; i=i+10) 

        if(str.length-i>=10)
        {
          newstr[j]=str.substring(i,10); 
        }
        else
        {
          newstr[j]=str.substring(i,str.length-i); 
        }  
        j++; 
    }
      

  3.   

    不用循环这么多次,使用newLength做条件循环substring,一次截取10个就行了
      

  4.   

    就是因为自己想不到好的才上来发帖的嘛向int newLength=(int)Math.Ceil(str.length/10.0) ->int newLength = str.length / 10 + 1;i=i+10->i += 10总之代码太长了,不满意 
      

  5.   

    int newLength=(int)Math.Ceil(str.length/10.0) ->int newLength = str.length / 10 + 1; 
    你这样写是错的  兄弟
    不长不行啊  
    不满意我的代码  你自己再想想吧
      

  6.   

                string str = "12345678900987654321556677889912345";
                string[] strarr = Regex.Replace(str, @"\w{10}", @"$&|").Split('|');
      

  7.   

    |在帖子中有显示有问题,可用别的字符代替            string str = "12345678900987654321556677889912345";
                string[] strarr = Regex.Replace(str, @"\w{10}", @"$&~").Split('~');
      

  8.   

     这就是传说中的正则表达式?
    string str = "12345678900987654321556677889912345";
                int i = (int)Math.Ceiling(str.Length / 10.0);
                string[] strr = new string[i];
                for (int j = 0; j < i; j++)
                {
                    if (j != i - 1)
                        strr[j] = str.Substring(j*10, 10);
                    else
                        strr[j] = str.Substring(j * 10,str.Length-j*10);
                }
      

  9.   


    突然想到一个问题,如果str的length正好为10的倍数,则数组最后会多出一个空串.
    解决为            string str = "12345678900987654321556677889912345";
                string[] strarr = Regex.Replace(str, @"\w{10}", @"$&~").TrimEnd('~').Split('~');