·您当前的位置:首页 > 技术教程 > JavaScript >

[JS]截取字符substring

时间:2014-09-23 17:10酷播
在项目中,经常显示时候要截取字符.一直用的是substring这个方法,由于汉字和字符截取时候默认长度一样,造成有时侯截显示长度不一样.后来根据字符来截取,下面是使用的代码

在项目中,经常显示时候要截取字符.一直用的是substring这个方法,由于汉字和字符截取时候默认长度一样,造成有时侯截显示长度不一样.后来根据字符来截取,下面是使用的代码

  1. import java.io.UnsupportedEncodingException; 
  2. public class CutString { 
  3.  /** 
  4.   * 判断是否是一个中文汉字 
  5.   * 
  6.   * @param c 
  7.   *            字符 
  8.   * @return true表示是中文汉字,false表示是英文字母 
  9.   * @throws UnsupportedEncodingException 
  10.   *             使用了JAVA不支持的编码格式 
  11.   */ 
  12.  public static boolean isChineseChar(char c) 
  13.    throws UnsupportedEncodingException { 
  14.   // 如果字节数大于1,是汉字,以这种方式区别英文字母和中文汉字并不是十分严谨 
  15.   return String.valueOf(c).getBytes("GBK").length > 1; 
  16.  } 
  17.  /** 
  18.   * 按字节截取字符串 
  19.   * 
  20.   * @param orignal 
  21.   *            原始字符串 
  22.   * @param count 
  23.   *            截取位数 
  24.   * @return 截取后的字符串 
  25.   * @throws UnsupportedEncodingException 
  26.   *             使用了JAVA不支持的编码格式 
  27.   */ 
  28.  public static String substring(String orignal, int count) 
  29.    throws UnsupportedEncodingException { 
  30.   // 原始字符不为null,也不是空字符串 
  31.   if (orignal != null && !"".equals(orignal)) { 
  32.    // 将原始字符串转换为GBK编码格式 
  33.    orignal = new String(orignal.getBytes(), "GBK"); 
  34.    // 要截取的字节数大于0,且小于原始字符串的字节数 
  35.    if (count > 0 && count < orignal.getBytes("GBK").length-2) { 
  36.     StringBuffer buff = new StringBuffer(); 
  37.     char c; 
  38.     for (int i = 0; i < count; i++) { 
  39.      c = orignal.charAt(i); 
  40.      buff.append(c); 
  41.      if (CutString.isChineseChar(c)) { 
  42.       // 遇到中文汉字,截取字节总数减1 
  43.       --count; 
  44.      } 
  45.     } 
  46.     buff.append(".."); 
  47.     return buff.toString(); 
  48.    } 
  49.   } 
  50.   return orignal; 
  51.  } 
  52.  
  53. /** 
  54.   * CuPlayer.com测试方法* / 
  55.  public static void main(String[] args) { 
  56.     } 
  57.   } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器