◆Java UTF-8编码单双字节字符串分割求助【求助】 分割成小于80byte若干部分? sorry 没有听懂 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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]); } 是分割成小于80byte的若干部分,主要是涉及到编码问题,Unicode使用可变长度来存储多字节字符,如果生硬的使用substring,可能会导致截断到半个双字节字符,我曾使用先count单字节字符的个数,如果是偶数就截到80,如果是奇数就截到79,但之后双字节字符都变成"?"了. 请教 关于Spring security 获取在线人数的问题 oracle 前一天的信息怎么查询啊 要怎么学,唉,我好迷茫啊 实现一个注册功能时报的错,大家帮帮忙看看是什么意思!!! Jsp叶面包含html 深圳找JAVA的工作 给个jmail stmp的发送列子 怎么才能知道jdbc执行的sql语句,得到了正确的结果。 有关部署的问题-新手提问 求很好的JAVA开发帮助文档一份!谢谢大家! 如何在内网中实现下载Applet的运行环境? java的工具选择(散分)
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]);
}