汉字/英文字符长度判断JS版与Java方法版


JS方法: 

Js代码  收藏代码
  1. <script   language=javascript>  
  2. String.prototype.lenB   =   function(){return   this.replace(/[^\x00-\xff]/g, "**").length;}  
  3. var   str   =   "这是一个可以将汉字计算成两个字节的函数 ";  
  4. alert( "老的算法   =   "   +   str.length);  
  5. alert( "新的算法   =   "   +   str.lenB());  
  6. </script>   



说明:上面JS里方法里的"**"表示把一个中文替换成英文的位数。"**"代表一个中文=两个英文 

java方法: 

Java代码  收藏代码
  1. /** 
  2.      * 获取字符串的长度,如果有中文,则每个中文字符计为2位 
  3.      * 
  4.      * @param value 
  5.      *            指定的字符串 
  6.      * @return 字符串的长度 
  7.      */  
  8.     public int chineseLength(String value) {  
  9.         int valueLength = 0;  
  10.         String chinese = "[\u0391-\uFFE5]";  
  11.         /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */  
  12.         for (int i = 0; i < value.length(); i++) {  
  13.             /* 获取一个字符 */  
  14.             String temp = value.substring(i, i + 1);  
  15.             /* 判断是否为中文字符 */  
  16.             if (temp.matches(chinese)) {  
  17.                 /* 中文字符长度为2 */  
  18.                 valueLength += 2;  
  19.             } else {  
  20.                 /* 其他字符长度为1 */  
  21.                 valueLength += 1;  
  22.             }  
  23.         }  
  24.         return valueLength;  
  25.     }  



说明:我想大家一看就懂了吧,关键语句是第18行。

原文地址:https://www.cnblogs.com/suifengbingzhu/p/2649681.html