分割成小于80byte若干部分? sorry 没有听懂

解决方案 »

  1.   

    String in="士大夫撒旦犯得上反对是深刻搭街坊勒克司大家阿里山激发寄生蜂历史里脚手分厘卡撒里脚手分厘卡撒解放了分列式的123456789012345678";
            int slen=80,len=in.length(),flag;
            flag=(len%slen==0)?0:1;
            String[] out=new String[len/slen+flag];
            for(int i=0;i<len/slen+1;i++){
                if(i==len/slen){
                    if(flag==1)out[i]=in.substring(i*slen,len);
                }
                else{
                    out[i]=in.substring(i*slen,(i+1)*slen);
                }
            }
            for(int j=0;j<out.length;j++){
                System.out.println(out[j]);
            }
      

  2.   

    是分割成小于80byte的若干部分,主要是涉及到编码问题,Unicode使用可变长度来存储多字节字符,如果生硬的使用substring,可能会导致截断到半个双字节字符,我曾使用先count单字节字符的个数,如果是偶数就截到80,如果是奇数就截到79,但之后双字节字符都变成"?"了.