欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-08 15:51:05
话不多说,上代码: /** * 获取字符串的长度,如果有中文,则每个中文字符计为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判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。