| « | December 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
| 公告 |
|
工作中的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;} |
|
|