一个字符串长度超过20,现在要在每个20长度的位置加上\n(回车符),如下:string str="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";使用方法转换成:str="aaaaaaaaaaaaaaaaaaaa\naaaaaaaaaaaaaaaaaaaa\naaaaaaaaaaaaaaaaa";
求些方法,小弟在线等各位指教!

解决方案 »

  1.   

    str=str.Insert(20,"\n");
    str=str.Insert(41,"\n");
    以此类推,写个循环
      

  2.   

    for(int i=20;;i+=20)
    {
      try
      {
        str=str.Insert(i,"\n");
      }
      catch
      {
       break;
      }
    }
      

  3.   

    StringBuilder sb = new StringBuilder();
            int i;
            for(i=0;i<str.Length-20;i+=20)
                sb.Append(str.Substring(i, 20)).Append("\n");
            sb.Append(str.Substring(i)).Append("\n");
      

  4.   

    string str = "BaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaE";            StringBuilder sb = new StringBuilder();
                int c = (str.Length - 1) / 20 + 1;
                for (int i = 0; i < c; i++)
                {
                    int idx = i * 20;
                    int l=str.Length-idx;
                    if (l > 20)
                        l = 20;
                    sb.AppendLine(str.Substring(i*20,l));                
                }            MessageBox.Show(sb.ToString());
      

  5.   

    try...........using System.Text.RegularExpressions;string yourStr = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    if (yourStr.Length > 20)
    {
         yourStr = Regex.Replace(yourStr, @"(.{20})", "$1\n");
    }
      

  6.   

    建议用stringBuilder
    ^_^
    内存开销少点
      

  7.   

    string str = "abcdefghjkmnabcdefghjkmnabcdefghjkmnabcdefghjkmn";
                int n = 20;            for (int i = n ; i < str.Length; i= i+n)
                {                
                        str = str.Insert(i, "\n");
                        n++;
                }
      

  8.   


                StringBuilder sb = new StringBuilder();
                int idx = 0;           
                while (idx<str.Length)
                {
                    int l=str.Length-idx;
                     if (l > 20)
                        l = 20;
                     sb.AppendLine(str.Substring(idx,l));
                     idx += l;
                 }             MessageBox.Show(sb.ToString());
      

  9.   

    注意:当在第一个位置添加"\n"后,str的长度会增加,下次添加"\n"的位置已经不是40,而是41,依次类推。
      

  10.   

    for(int i=0;i<str.Length;i++)
    {
        List<char> list = new List<char>();
        if(i%20 ==0 && i!=0)
        {
              list.Add('\n');
        } 
        else
        list.add(str[i]);
        return new string(list.ToArray());
    }