String s="12#r#yu#sd#7y#iu@9#e#h#8#o#i@712#r67#y8#s0d#7#iu@9i0#eh5#h6#8hj#)o#iuh7";
s=s.replaceAll("#","");
StringTokenizer st=new StringTokenizer(s,"@");
while (st.hasMoreTokens()) {
      System.out.println(st.nextToken());
}

解决方案 »

  1.   

    to jFresH_MaN(我本将心照明月,奈何明月照沟渠!) :
    可能没看明白我得意思
    并且组成最多20个字节一组打印出来,不是就这么按照分隔符打印出来,就是说如果"12#r#yu#sd#7y#iu"去掉#之后有15个字节而“9#e#h#8#o#i@712#r67#y8#s0d#7#iu“去掉#之后有5个字节则把它们合并打印出来,如果后面那串大于5个字节,就光打印第一串,让第二串再和第三串拼,以此类推,到最后把群不都打印出来
      

  2.   

    就是a@b@c,先假设a,b,c的字节数都不会大于等于20
    如果a字节数是12,b的字节数是10,c得字节数10
    那么就是打印出a,在打印出b+c的合串。因为a+b>20了,所以就打印a,如果c得字节数为5,也是打印出b+c的合串,就是字节数不超过20为前提,为@分割为前提
    分不够可以再加,另外还有就是如果得到最后拼成的总串数。
      

  3.   

    String s="12#r#yu#sd#7y#iu@9#e#h#8#o#i@712#r67#y8#s0d#7#iu@9i0#eh5#h6#8hj#)o#iuh7";
    s=s.replaceAll("#","");
    String []ss=s.split("@");
    int i=0;
    while(i<ss.length) {
    if(i=ss.length-1) System.out.println(ss[i-1]
    StringBuffer sb=new StringBuffer(ss[i]);
    int temp=i+1;
    while((temp<ss.length)&&((sb.length()+ss[temp])<=20)) {
    sb.append(ss[temp]);
    temp++;
    }
    System.out.println(sb.toString());
    }
    这里没有环境,没有调试,你先试试
      

  4.   

    String s="12#r#yu#sd#7y#iu@9#e#h#8#o#i@712#r67#y8#s0d#7#iu@9i0#eh5#h6#8hj#)o#iuh7";
    s=s.replaceAll("#","");
    String []ss=s.split("@");
    int i=0;
    while(i<ss.length) {
    if(i=ss.length-1) System.out.println(ss[i-1]);
    StringBuffer sb=new StringBuffer(ss[i]);
    int temp=i+1;
    while((temp<ss.length)&&((sb.length()+ss[temp])<=20)) {
    sb.append(ss[temp]);
    temp++;
    }
    System.out.println(sb.toString());
    i=temp;
    }
    这个
      

  5.   

    好像不对
    输入"12#r#yu#sd#7y#iu@9#e#h#8#o#i@712#r67#y8#s0d#7#iu@9i0#eh5#h6#8hj#)o#iuh7"
    出来就是按照@分割的5个串
    12ryusd7yiu
    9eh8oi
    712r67y8s0d7iu
    712r67y8s0d7iu
    9i0eh5h68hj)oiuh7
      

  6.   

    12ryusd7yiu9eh8oi
    712r67y8s0d7iu
    712r67y8s0d7iu
    9i0eh5h68hj)oiuh7
    上面错了,输出着这个多了一个712r67y8s0d7iu
      

  7.   

    我刚才测试了,是对的啊 
    String s="12#r#yu#sd#7y#iu@9#e#h#8#o#i@712#r67#y8#s0d#7#iu@9i0#eh5#h6#8hj#)o#iuh7";
    s=s.replaceAll("#","");
    String []ss=s.split("@");
    int i=0;
    while(i<ss.length) {
    if(i==ss.length-1) System.out.println(ss[i-1]);
    StringBuffer sb=new StringBuffer(ss[i]);
    int temp=i+1;
    while((temp<ss.length)&&((sb.length()+ss[temp].length())<=20)) {
    sb.append(ss[temp]);
    temp++;
    }
    System.out.println(sb.toString());
    i=temp;
    }