首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

java中英文字符长度截取有关问题

2012-08-28 
java中英文字符长度截取问题public static String subStr(String str, int num) {int max numtry {max

java中英文字符长度截取问题

public static String subStr(String str, int num) {int max = num;try {max = trimGBK(str.getBytes("GBK"),num);} catch (UnsupportedEncodingException e) {e.printStackTrace();}  int sum = 0;if (str != null && str.length() > max) {StringBuilder sb = new StringBuilder(max);for (int i = 0; i < str.length(); i++) {int c = str.charAt(i);//if ((c & 0xff00) != 0)//sum += 2;//elsesum += 1;if (sum <= max)sb.append((char) c);elsebreak;}return sb.append("...").toString();} elsereturn str != null ? str : "";}public static int  trimGBK(byte[] buf,int n){          int num = 0;          boolean bChineseFirstHalf = false;        if(buf.length < n )return buf.length;    for(int i=0;i<n;i++)          {              if(buf[i]<0 && !bChineseFirstHalf){                  bChineseFirstHalf = true;              }else{                  num++;                  bChineseFirstHalf = false;                            }          }                  return num;      }

热点排行