fengxiang
2018-04-17 ac5c0ea75ed3606ff675c70c4456241495c2c8a9
src/main/java/com/moral/common/util/StringUtils.java
@@ -81,4 +81,55 @@
      return result;
   }
   /**
    *  中英文字符长度控制
    * @param str
    * @param maxLength
    * @return
    */
   public static String subStringCN(final String str, final int maxLength) {
      if (str == null) {
         return str;
      }
      String suffix = "...";
      int suffixLen = suffix.length();
      final StringBuffer sbuffer = new StringBuffer();
      final char[] chr = str.trim().toCharArray();
      int len = 0;
      for (int i = 0; i < chr.length; i++) {
         if (chr[i] >= 0xa1) {
            len += 2;
         } else {
            len++;
         }
      }
      if(len<=maxLength){
         return str;
      }
      len = 0;
      for (int i = 0; i < chr.length; i++) {
         if (chr[i] >= 0xa1) {
            len += 2;
            if (len + suffixLen > maxLength) {
               break;
            }else {
               sbuffer.append(chr[i]);
            }
         } else {
            len++;
            if (len + suffixLen > maxLength) {
               break;
            }else {
               sbuffer.append(chr[i]);
            }
         }
      }
      sbuffer.append(suffix);
      return sbuffer.toString();
   }
}