本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告

 工作中的Janet.加油!

    生活中的Janet.i-life


我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:
日志总数:30
评论数量:10
留言数量:0
访问次数:86289
建立时间:2005年8月31日




[Java Tips]精确截取字符串
网上资源

janetvsfei 发表于 2005/9/7 10:52:30

开发中经常遇到,字符串过长,无法完全显示的问题这时候就需要截取我们所需要的长度,后面显示省略号或其他字符。由于中文字符占两个字节,而英文字符占用一个字节,所以,单纯地判断字符数,效果往往不尽如人意下面的方法通过判断字符的类型来进行截取,效果还算可以:)如果大家有其他的解决方法欢迎贴出来,共同学习:)**********************************************************************private String str;private int counterOfDoubleByte;private byte b[];/*** 设置需要被限制长度的字符串* @param str 需要被限制长度的字符串*/public void setLimitLengthString(String str){  this.str = str;}/*** @param len 需要显示的长度(<font color="red">注意:长度是以byte为单位的,一个汉字是2个byte</font>)* @param symbol 用于表示省略的信息的字符,如“...”,“>>>”等。* @return 返回处理后的字符串*/public String getLimitLengthString(int len, String symbol) throws UnsupportedEncodingException {  counterOfDoubleByte = 0;  b = str.getBytes("GBK");  if(b.length <= len)    return str;  for(int i = 0; i < len; i++){    if(b < 0)      counterOfDoubleByte++;  }  if(counterOfDoubleByte % 2 == 0)    return new String(b, 0, len, "GBK") + symbol;  else    return new String(b, 0, len - 1, "GBK") + symbol;}


阅读全文(1714) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.438 second(s), page refreshed 144812628 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号