当前位置: 首页 > 编程笔记 >

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

范修伟
2023-03-14
本文向大家介绍java判断中文字符串长度的简单实例,包括了java判断中文字符串长度的简单实例的使用技巧和注意事项,需要的朋友参考一下

话不多说,上代码:

 /**
  * 获取字符串的长度,如果有中文,则每个中文字符计为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判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍java中判断字段真实长度的实例(中文2个字符,英文1个字符),包括了java中判断字段真实长度的实例(中文2个字符,英文1个字符)的使用技巧和注意事项,需要的朋友参考一下 实例如下:   1、判断字符串是否为连续的中文字符(不包含英文及其他任何符号和数字): Regex.IsMatch("中文","^[/u4e00-/u9fa5]"); 2、判断字符串是否为中文字符串(仅不包含英文

  • 本文向大家介绍PHP判断字符串长度的两种方法很实用,包括了PHP判断字符串长度的两种方法很实用的使用技巧和注意事项,需要的朋友参考一下 php程序中字符串长度判断,可以使用strlen。 方法一: 方法二: 以上两种方法,第二种效率更高些。 在PHP中,所有的变量都是用一个结构-zval来保存的,strlen虽然是直接获取其中的len,但是仍然有一次函数调用,而isset是PHP的语法结构,所以更

  • 本文向大家介绍Python判断中文字符串是否相等的实例,包括了Python判断中文字符串是否相等的实例的使用技巧和注意事项,需要的朋友参考一下 Python判断两个相等的中文字符串为false,将两个待比较的字符串都把unicode编码设为‘utf-8'也不能解决问题,具体原因如下: 1.首先查看待比较两个字符串的编码格式 ,使用命令 比较两个字符串的编码结果,如下图所示 一个编码格式为‘UTF-

  • Python3 实例 以下代码演示了Python字符串的判断: # Filename : test.py # author by : www.runoob.com # 测试实例一 print("测试实例一") str = "runoob.com" print(str.isalnum()) # 判断所有字符都是数字或者字母 print(str.isalpha()) # 判断所有字符都是字母 pr

  • 问题内容: 我正在努力获取unicode字符串的计数,并尝试了各种选择。看起来像是一个小问题,但却大有作为。 在这里,我试图获取字符串str1的长度。我得到的是6。但实际上是3。将光标移到字符串“குமார்”上还会显示为3个字符。 基本上我想测量长度并打印每个字符。如“கு”,“மா”,“ர்”。 PS:这是泰米尔语。 问题答案: 找到了解决您问题的方法。 基于这个SO答案,我制作了一个使用正则

  • 我正在努力获取unicode字符串的计数,并尝试了各种选项。看起来是个小问题,但影响很大。 这里我试图得到字符串str1的长度。我得到的是6分。但实际上是3。将光标移到字符串上“குமார்“也显示为3个字符。 基本上我想测量长度并打印每个字符。像 "கு", "மா", "ர்" . 附言:这是泰米尔语。