java String字符串截取。
在英文字符和汉字同时出现的字符串中,如果要截取定长字节的子串,且不会把最后一个汉字截断。
没有什么比较好的方法,只有从头一个一个数,数到最后时,进行判断一下。
//以下方法设和GBK字符串,如果是其他编码的字符串,要修改一下 private static String subString(String str, int bytelength) { if (str == null) { return null; } if (bytelength <= 0) { return ""; } try { if (str.getBytes("GBK").length <= bytelength) { return str; } } catch (Exception ex) { } StringBuffer buff = new StringBuffer();
int index = 0; char c; while (bytelength > 0) { c = str.charAt(index); if (c < 128) { bytelength--; } else {//GBK编码汉字占2字节,其他编码的不一样,要修改下面几句 bytelength--; if (bytelength < 1)//被截断了 break; bytelength--; } buff.append(c); index++; } buff.append("..."); return buff.toString(); }
|
阅读(6134) | 评论(0) | 转发(0) |