java计算汉字字符串的长度

2018-03-25 17:06:12
1552次阅读
0个评论
1字符=2字节,1字节=8位

英文和数字占一个字节,中文占一个字符,也就是两个字节

在计算的字符串长度的时候,若有汉字,直接用String.length()方法是没法计算出准确的长度


正确代码如下:


public class LengthTest {  
    public static void main(String[] args) {  
        String userName = "好评zxc";       
        int length = length(userName);  
        System.out.println(length);  
    }  
    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;  
    }  
}
收藏00

登录 后评论。没有帐号? 注册 一个。