中英混排文字长度截取
中文字符长度截取。
private static void printByteLength(String s ,String ecodingName){ System.out.print("字节数: "); try { System.out.println(s.getBytes(ecodingName).length); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } //判定是否是中文字符 private static boolean isChineseChar(char c) throws UnsupportedEncodingException{ return String.valueOf(c).getBytes("GBK").length>1; } //截取特定长度的字符 private static String substring(String origin,int size) throws UnsupportedEncodingException{ if(origin!=null&&!"".equals(origin)){ origin=new String(origin.getBytes(),"GBK"); if(size>0 && size<origin.getBytes("GBK").length){ StringBuffer des=new StringBuffer(); char c; for(int i=0;i<size;i++){ c=origin.charAt(i); des.append(c); if(isChineseChar(c)) --size; } return des.toString(); } } System.out.println("nan dao ?"); return origin; }