当前位置: 移动技术网 > IT编程>开发语言>Java > java判断中文字符串长度的简单实例

java判断中文字符串长度的简单实例

2019年07月22日  | 移动技术网IT编程  | 我要评论
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为2位 * @param value 指定的字符串 * @ret

话不多说,上代码:

 /**
  * 获取字符串的长度,如果有中文,则每个中文字符计为2位
  * @param value 指定的字符串
  * @return 字符串的长度
  */
  public static int length(string value) {
    int valuelength = 0;
    string chinese = "[\u0391-\uffe5]";
    /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
    for (int i = 0; i < value.length(); i++) {
      /* 获取一个字符 */
      string temp = value.substring(i, i + 1);
      /* 判断是否为中文字符 */
      if (temp.matches(chinese)) {
        /* 中文字符长度为2 */
        valuelength += 2;
      } else {
        /* 其他字符长度为1 */
        valuelength += 1;
      }
    }
    return valuelength;
  }


 /** 
  * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为2,英文字符长度为1 
  * @param string s 需要得到长度的字符串 
  * @return int 得到的字符串长度 
  */  
  public static int length(string s) { 
    if (s == null) 
      return 0; 
    char[] c = s.tochararray(); 
    int len = 0; 
    for (int i = 0; i < c.length; i++) { 
      len++; 
      if (!isletter(c[i])) { 
        len++; 
      } 
    } 
    return len; 
  } 


  /** 
  * 得到一个字符串的长度,显示的长度,一个汉字或日韩文长度为1,英文字符长度为0.5 
  * @param string s 需要得到长度的字符串 
  * @return int 得到的字符串长度 
  */  
  public static double getlength(string s) { 
  double valuelength = 0;  
    string chinese = "[\u4e00-\u9fa5]";  
    // 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1  
    for (int i = 0; i < s.length(); i++) {  
      // 获取一个字符  
      string temp = s.substring(i, i + 1);  
      // 判断是否为中文字符  
      if (temp.matches(chinese)) {  
        // 中文字符长度为1  
        valuelength += 1;  
      } else {  
        // 其他字符长度为0.5  
        valuelength += 0.5;  
      }  
    }  
    //进位取整  
    return math.ceil(valuelength);  
  }
根据长度截取内容,区分中英文:

/**
   * 截取字符长度,区分中英文
   *
   * @param abc 字符串内容
   * @param len 截取长度
   * @return
   */
  public static string substr(string abc, int len) {
    if (textutils.isempty(abc) || len <= 0)
      return "";
    stringbuffer stringbuffer = new stringbuffer();
    int sum = 0;
    char[] chars = abc.tochararray();
    for (int i = 0; i < chars.length; i++) {
      if (sum >= (len * 3)) {
        break;
      }
      char bt = chars[i];
      if (bt > 64 && bt < 123) {
        stringbuffer.append(string.valueof(bt));
        sum += 2;
      } else {
        stringbuffer.append(string.valueof(bt));
        sum += 3;
      }
    }
    return stringbuffer.tostring();
  }


以上这篇java判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网