服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java判断中文字符串长度的简单实例

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

2020-07-30 16:16java教程网 Java教程

下面小编就为大家带来一篇java判断中文字符串长度的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

话不多说,上代码:

java" id="highlighter_170724">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/**
  * 获取字符串长度,如果有中文,则每个中文字符计为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判断中文字符串长度的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐