您的位置:程序门 -> .net技术 -> c#



新手求,处理字符串方法,在线等!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


新手求,处理字符串方法,在线等![已结贴,结贴人:laurel218]
发表于:2007-03-26 13:30:00 楼主
一个字符串长度超过20,现在要在每个20长度的位置加上\n(回车符),如下:

string   str= "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ";

使用方法转换成:

str= "aaaaaaaaaaaaaaaaaaaa\naaaaaaaaaaaaaaaaaaaa\naaaaaaaaaaaaaaaaa ";


求些方法,小弟在线等各位指教!
发表于:2007-03-26 13:40:161楼 得分:0
顶起来,请大家帮忙!
发表于:2007-03-26 13:46:032楼 得分:5
str=str.insert(20, "\n ");
str=str.insert(41, "\n ");
以此类推,写个循环
发表于:2007-03-26 13:52:063楼 得分:5
for(int   i=20;;i+=20)
{
    try
    {
        str=str.insert(i, "\n ");
    }
    catch
    {
      break;
    }
}
发表于:2007-03-26 13:52:214楼 得分:5
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 ");
发表于:2007-03-26 13:55:425楼 得分:0
要倒序   for吧
发表于:2007-03-26 14:03:546楼 得分:5
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());
发表于:2007-03-26 14:05:007楼 得分:0
try...........

using   system.text.regularexpressions;

string   yourstr   =   "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ";
if   (yourstr.length   >   20)
{
          yourstr   =   regex.replace(yourstr,   @ "(.{20}) ",   "$1\n ");
}
发表于:2007-03-26 14:05:178楼 得分:0
建议用stringbuilder
^_^
内存开销少点
发表于:2007-03-26 14:07:159楼 得分:0
string   str   =   "abcdefghjkmnabcdefghjkmnabcdefghjkmnabcdefghjkmn ";
                        int   n   =   20;

                        for   (int   i   =   n   ;   i   <   str.length;   i=   i+n)
                        {                                
                                        str   =   str.insert(i,   "\n ");
                                        n++;
                        }
发表于:2007-03-26 14:09:4210楼 得分:0

                        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());

发表于:2007-03-26 14:09:4211楼 得分:0
注意:当在第一个位置添加 "\n "后,str的长度会增加,下次添加 "\n "的位置已经不是40,而是41,依次类推。
发表于:2007-03-26 16:32:3112楼 得分:0
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());
}


快速检索

最新资讯
热门点击